国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker 入門(一):理解三大核心

李世贊 / 2840人閱讀

摘要:鏡像加速國內(nèi)有非常多的鏡像倉庫,本文介紹使用阿里云的,后文我們也會(huì)介紹把自己的鏡像上傳到阿里云,并且該服務(wù)是免費(fèi)的。訪問這個(gè)地址如果沒有阿里云賬號(hào)的就自己注冊(cè)一個(gè)。最好還是用國內(nèi)的速度比較快,這里介紹阿里云的。

Docker 的前世今生

Docker 的核心理念是 Build, Ship, and Run Any App, Anywher,即一次封裝,到處運(yùn)行。

從前,我們?cè)诜?wù)器配置一個(gè)應(yīng)用的運(yùn)行環(huán)境,要安裝各種組件,就拿 JavaWeb 的環(huán)境來說吧,要安裝 Tomcat、MySQL 等。安裝和配置這些東西有多麻煩就不說了,它還不能跨平臺(tái)。假如我們是在 Windows 上安裝的這些環(huán)境,到了 Linux 又得重新裝。況且就算不跨操作系統(tǒng),換另一臺(tái)同樣操作系統(tǒng)的服務(wù)器,要移植應(yīng)用也是非常麻煩的。

Linux 容器技術(shù) 的出現(xiàn)就解決了這樣一個(gè)問題,而 Docker 就是在它的基礎(chǔ)上發(fā)展過來的。將應(yīng)用運(yùn)行在 Docker 容器上面,而 Docker 容器在任何操作系統(tǒng)上都是一致的,這就實(shí)現(xiàn)了跨平臺(tái)、跨服務(wù)器。只需要一次配置好環(huán)境,換到別的機(jī)子上就可以一鍵部署好,大大簡(jiǎn)化了操作。

Docker 的安裝配置

這里我主要介紹一下 Docker 在 Ubuntu 和 Windows 中的安裝。其他的操作系統(tǒng)可自行搜索安裝教程。

由于 Docker 官網(wǎng)在國內(nèi)的訪問速度不好,所以這里推薦去 DaoCloud 下載鏡像,速度非常快:

https://get.daocloud.io/#inst...

Windows

先進(jìn)入到 Docker 的下載頁面:

https://get.daocloud.io/#inst...

如果是 win10 系統(tǒng)就直接下載 Docker for Windows,如果是 win10 之前的系統(tǒng)就下載Docker Toolbox。下載完成之后默認(rèn)一直點(diǎn)下一步就安裝完成了。

注意:windows 運(yùn)行 Docker 需要在 BIOS 中開啟 Intel Virtual Technology,如果打不開 Docker 并提示有該類錯(cuò)誤請(qǐng)自行根據(jù)自己電腦型號(hào)搜索相關(guān)教程。
Ubuntu

可以用 Ubuntu 自帶的安裝源安裝 Docker,只需要執(zhí)行以下兩條命令即可:

$ sudo apt-get update
$ sudo apt-get install docker.io

不過用自帶安裝源安裝的 Docker 并不是最新版,推薦用以下方式安裝最新版:

$ curl -sSL https://get.daocloud.io/docker | sh

安裝完成之后可以用 docker version 命令查看 docker 版本信息。

注意:正常情況下,應(yīng)該顯示出 Client 和 Server 的信息,如果沒有 Server 的信息,則代表服務(wù)沒有啟動(dòng)。此時(shí)需要用 service docker start 命令啟動(dòng)它。
Ubuntu 卸載 Docker

如果裝錯(cuò)版本了可以卸載了重新裝

$ sudo apt-get remove --purge docker.io
$ rm -rf /var/lib/docker
Docker 核心概念

Docker 有三大核心概念:

倉庫(repository)

鏡像(image)

容器(container)

Docker 利用倉庫管理鏡像的設(shè)計(jì)與 Git 非常相似。我們要配置的應(yīng)用運(yùn)行環(huán)境就是鏡像,如 nginx 鏡像,當(dāng)我們本地沒有該鏡像的時(shí)候,就需要從遠(yuǎn)程倉庫 pull 下來,當(dāng)我們啟動(dòng)這個(gè)鏡像時(shí),就會(huì)有一份鏡像被復(fù)制并運(yùn)行在容器中。如果我們改動(dòng)了容器里面的內(nèi)容,也可以將其 commit 保存成新的鏡像。

第一個(gè) Docker 實(shí)例

這里以 Nginx 為例來演示在 docker 中啟動(dòng)一個(gè)應(yīng)用的過程。

啟動(dòng) Nginx 分為 三步:

pull nginx 鏡像

運(yùn)行 nginx 容器

映射 nginx 端口

pull 鏡像

首先要 Docker 官方倉庫 里搜索 nginx,找到帶有 official 字樣的,點(diǎn)進(jìn)去把 pull 命令復(fù)制下來。

https://hub.docker.com

執(zhí)行該條命令就把鏡像 pull 到本地了。執(zhí)行「docker images」即可查看本地鏡像。

其實(shí) docker pull nginx 這條命令是簡(jiǎn)寫形式,完整命令應(yīng)該是:

$ docker pull registry.hub.docker.com/library/nginx

完整的命令是在 nginx 前面加上了 注冊(cè)服務(wù)器的地址,由于 docker pull 的默認(rèn)地址是這個(gè),所以該地址是可以不加的。

為什么要說這個(gè)呢,因?yàn)閺墓俜絺}庫下載鏡像實(shí)在是非常的慢,有時(shí)候還下載不了。如果我們更改了這個(gè)注冊(cè)服務(wù)器的地址,把它換成國內(nèi)的,就可以實(shí)現(xiàn)加速。

鏡像加速

國內(nèi)有非常多的鏡像倉庫,本文介紹使用阿里云的,后文我們也會(huì)介紹把自己的鏡像上傳到阿里云,并且該服務(wù)是免費(fèi)的。

訪問這個(gè)地址:

https://cr.console.aliyun.com...

如果沒有阿里云賬號(hào)的就自己注冊(cè)一個(gè)。在上面這個(gè)地址的頁面就可以看到自己的專屬加速地址了,并且有不同系統(tǒng)的安裝方法,根據(jù)給的教程安裝即可。

運(yùn)行 nginx 容器

pull 了鏡像之后,執(zhí)行以下命令就可以啟動(dòng)它了。

$ docker run -d nginx 

這條命令是后臺(tái)啟動(dòng) nginx ,不加 -d 就是前臺(tái)啟動(dòng)。啟動(dòng)了之后我們暫時(shí)還是無法訪問帶它的,我們還需要將容器內(nèi)的 nginx 端口映射到容器外面,才可以訪問到。

映射 nginx 端口
$ docker run -d -p 8080:80 nginx

跟上條命令比起來只加了一個(gè) -p 參數(shù),后面跟上端口,這里我是把本機(jī)的 8080 端口映射到 容器內(nèi)的 80 端口上,瀏覽器訪問 localhost:8080 就可以看到 nginx 的歡迎頁面了。

鏡像和容器的基本操作 鏡像操作

查看本地鏡像

$ docker images

為鏡像添加標(biāo)簽

$ docker tag old-tag new-tag

新的標(biāo)簽跟原標(biāo)簽鏡像的 ID 是完全一樣的,它們實(shí)際上都指向同一個(gè)鏡像文件,只是別名不同而已。

刪除鏡像

$ docker rmi image-id/image-tag

注意:刪除鏡像需要先刪除使用了此鏡像的容器,雖然可以強(qiáng)制刪除,但是并不推薦這么做。另外刪除鏡像,可以用 tag 或 ID 刪除,如果 ID 是一樣的就用 tag 刪除
容器操作

查看正運(yùn)行的容器

$ docker ps

停止正在運(yùn)行的容器

$ docker stop container-id

容器的 ID 不需要全部輸完,只要能區(qū)分兩個(gè)容器就可以了。

查看所有容器

$ docker ps -a

刪除容器

$ docker rm container-id

刪除容器之前需要先停止它

將正在運(yùn)行的容器保存為鏡像

$ docker commit container-id image-tag

特別注意:如果更改了容器后不將它保存為新的鏡像,在容器被刪除后,所有的更改都不會(huì)被保存。下一文會(huì)介紹另 Docker 的數(shù)據(jù)存儲(chǔ)可以解決這個(gè)問題。另外,此命令后面的 tag 可以不寫只寫名字,默認(rèn) latest。

進(jìn)入容器內(nèi)部

$ docker exec -it container bash

Docker 容器也有一個(gè)類 Linux 的文件系統(tǒng),還可以用一些 linux 命令。要退出容器可輸入exit

注意:有的鏡像是沒有帶 bash 的,比如 docker pull daocloud.io/library/nginx:1.13.8-alpine-perl,這條命令就會(huì)報(bào)錯(cuò),這時(shí)就可以用 sh 建立連接:

$ docker exec -it container /bin/sh

復(fù)制文件到容器內(nèi)

$ docker cp file container-id:newfile

復(fù)制容器內(nèi)的文件到容器外

$ docker cp container-id:file newfile

復(fù)制容器內(nèi)的文件到容器外命令是在容器外執(zhí)行的
導(dǎo)入導(dǎo)出鏡像和容器 導(dǎo)入和導(dǎo)出鏡像

導(dǎo)出鏡像

$ docker save -o name.tar image-tag

導(dǎo)入鏡像

$ docker load --input name.tar
導(dǎo)入和導(dǎo)出容器

導(dǎo)出容器

$ docker export -o name.tar container-id

導(dǎo)入容器(docker import name.tar image-tag)

容器導(dǎo)入其實(shí)是導(dǎo)成了鏡像。
push 自己的鏡像到遠(yuǎn)程倉庫

先來了解一下 docker 是如何管理倉庫和鏡像的。

倉庫是放在注冊(cè)服務(wù)器上的,一個(gè)倉庫只管理一個(gè)鏡像,一個(gè)鏡像可以有多個(gè)版本。

push 鏡像到 Docker Hub

訪問 Docker Hub(注冊(cè)服務(wù)器):

https://hub.docker.com/

如果沒有賬號(hào)的話自己注冊(cè)一個(gè),然后點(diǎn)擊 Create Repository ,在如下頁面創(chuàng)建一個(gè)倉庫。

例如我起的名字是:web-server,我的倉庫名就是 stormxing/web-server

接著在本地用如下命令登錄 Docker Hub

如果我們想把鏡像上傳到 Docker Hub,我們的鏡像名字就得跟倉庫名一致。要做到這一點(diǎn),我們可以用為鏡像創(chuàng)建一個(gè)新的標(biāo)簽。例如將 nginx 鏡像重新創(chuàng)建一個(gè)標(biāo)簽 stormxing-webserver,如果版本不填寫就默認(rèn)是 latest。

最后,直接 push 就可以了,完成之后在倉庫頁面的 tags 選項(xiàng)中可以看到自己的鏡像。

push 鏡像到阿里云倉庫

雖然 Docker Hub 可以 push 鏡像,但是速度太慢了。最好還是用國內(nèi)的速度比較快,這里介紹阿里云的。

首先登陸這個(gè)地址,創(chuàng)建一個(gè)倉庫,然后設(shè)置下登錄密碼:

https://cr.console.aliyun.com

創(chuàng)建倉庫選擇本地倉庫

最后阿里云的操作指南非常詳細(xì),跟上面的步驟基本一致,這里就不再贅述了。

總結(jié)

本篇文章主要介紹了Docker 的作用、Docker 三大核心(倉庫、鏡像、容器)的基本操作,還介紹了如何 push 自己的鏡像到遠(yuǎn)程倉庫。

下一篇文章 將介紹 Docker 的數(shù)據(jù)管理和用更高級(jí)的方式 Dockerfile 來創(chuàng)建鏡像以及 docker-compose 的簡(jiǎn)單使用。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/27248.html

相關(guān)文章

  • 從小白程序員路晉升為大廠高級(jí)技術(shù)專家我看過哪些書籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級(jí)技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...

    sf_wangchong 評(píng)論0 收藏0
  • java篇

    摘要:多線程編程這篇文章分析了多線程的優(yōu)缺點(diǎn),如何創(chuàng)建多線程,分享了線程安全和線程通信線程池等等一些知識(shí)。 中間件技術(shù)入門教程 中間件技術(shù)入門教程,本博客介紹了 ESB、MQ、JMS 的一些知識(shí)... SpringBoot 多數(shù)據(jù)源 SpringBoot 使用主從數(shù)據(jù)源 簡(jiǎn)易的后臺(tái)管理權(quán)限設(shè)計(jì) 從零開始搭建自己權(quán)限管理框架 Docker 多步構(gòu)建更小的 Java 鏡像 Docker Jav...

    honhon 評(píng)論0 收藏0
  • Docker 入門及安裝[Docker 系列-1]

    摘要:核心對(duì)名字空間的支持完全隔離了工作環(huán)境中應(yīng)用程序的視野,包括進(jìn)程樹網(wǎng)絡(luò)用戶與掛載文件系統(tǒng),而核心的提供資源隔離,包括存儲(chǔ)器與網(wǎng)絡(luò)。因此更為輕量快速和易于管理。 docker 如日中天,這不是單純的炒概念,docker 確確實(shí)實(shí)解決了開發(fā)與運(yùn)維的痛點(diǎn),因此在企業(yè)開發(fā)中得到了非常廣泛的使用,本文對(duì)于 docker 的這些基本知識(shí)點(diǎn)再做一些簡(jiǎn)單回顧。 什么是 docker 根據(jù) wikip...

    Lin_R 評(píng)論0 收藏0
  • Docker技術(shù)三大要點(diǎn):cgroup, namespace和unionFS的理解

    摘要:而是基于容器的這個(gè)設(shè)計(jì)思想,基于技術(shù)實(shí)現(xiàn)的核心管理引擎。的三大特色,和。不同內(nèi)的進(jìn)程屬于不同的,彼此透明,互不干擾。看下面的圖加深理解。同樣內(nèi)核版本的不同的發(fā)行版,其都是一致的。 www.docker.com的網(wǎng)頁有這樣一張有意思的動(dòng)畫: showImg(https://segmentfault.com/img/remote/1460000017474530); 從這張gif圖片,我們...

    Zachary 評(píng)論0 收藏0
  • java篇 - 收藏集 - 掘金

    摘要:進(jìn)階多線程開發(fā)關(guān)鍵技術(shù)后端掘金原創(chuàng)文章,轉(zhuǎn)載請(qǐng)務(wù)必將下面這段話置于文章開頭處保留超鏈接。關(guān)于中間件入門教程后端掘金前言中間件 Java 開發(fā)人員最常犯的 10 個(gè)錯(cuò)誤 - 后端 - 掘金一 、把數(shù)組轉(zhuǎn)成ArrayList 為了將數(shù)組轉(zhuǎn)換為ArrayList,開發(fā)者經(jīng)常... Java 9 中的 9 個(gè)新特性 - 后端 - 掘金Java 8 發(fā)布三年多之后,即將快到2017年7月下一個(gè)版...

    OpenDigg 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<