關(guān)于Docker 不得不看的上手指南
譯文【51CTO.com快譯】如果你對Docker有所了解,并且正準(zhǔn)備開始使用Docker容器引擎,那么你一定不要錯(cuò)過這篇文章。我們會(huì)從Docker容器、鏡像和庫三個(gè)方面詳細(xì)向你展開介紹。
首先你要知道,Docker是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
先來看看下面這張工作流程圖中,可以幫助你更好的理解Docker的工作模式。
接下來,你要知道關(guān)于Docker容器的三項(xiàng)基本內(nèi)容:
·Docker容器:這是Docker容器運(yùn)行的一個(gè)簡單的虛擬機(jī)。
·Docker鏡像:這類似于你在虛擬機(jī)上運(yùn)行的ISO映像,但這是一個(gè)高度精簡的版本。窗機(jī)中所有多余的安裝包和文庫都已經(jīng)被刪除。
·Docker庫:這是一個(gè)Docker鏡像快照,可以啟動(dòng)、停止、修改或發(fā)布的另一個(gè)鏡像。
Docker容器
官方下載之后你就可以在PC端使用你的Docker了,為防止它不慎丟失,你可以用Docker窗口命令再創(chuàng)建一個(gè)默認(rèn)Docker備用。使用命令為:docker-machinecreatedefault.
注:你可以自己設(shè)定磁盤的大小和存儲(chǔ)容量,同樣通過上述命令,用指定專用交換機(jī)來執(zhí)行。如果你要做一些數(shù)據(jù)方面的工作,我強(qiáng)烈建議你設(shè)定磁盤分區(qū)。你也可以用不同的配置安裝多個(gè)Docker窗口備用。檢查窗機(jī)使用的命令為:docker-machinels.
這里是輸出樣例:
- NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
- default * virtualbox Running tcp://192.168.99.100:2376 v17.04.0-ce
開始使用Docker,你當(dāng)然得使用開始命令,然后你可能會(huì)跳過輸入窗口名稱這一步,如果有默認(rèn)名稱的話,不然的話,你還得擬定一個(gè)名稱。
要查看你的Docker窗口工作狀態(tài),你可以輸入狀態(tài)指令,例如"running"或者"stopped"。
另外需要注意的是,你要確保你的主機(jī)操作系統(tǒng)適應(yīng)所有的Docker窗口的環(huán)境變量。Docker-machineenv命令是獲得運(yùn)行腳本的一個(gè)方便的方式,可以用來設(shè)置環(huán)境變量。
- SET DOCKER_TLS_VERIFY=1
- SET DOCKER_HOST=tcp://192.168.99.100:2376
- SET DOCKER_CERT_PATH=C:\Users\kushukla\.docker\machine\machines\default
- SET DOCKER_MACHINE_NAME=default
- SET COMPOSE_CONVERT_WINDOWS_PATHS=true
- REM Run this command to configure your shell:
- REM @FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i
只需要復(fù)制粘貼上面的命令到終端,或者命令提示符,再或者按照備注設(shè)置環(huán)境變量。
Docker鏡像
關(guān)于Docker容器我們先說這么多,現(xiàn)在我們來看看Docker鏡像在容器上的運(yùn)行。如果你已經(jīng)了解"庫",那么你就可以通過dockerpullrocker/rstudio命令來下載圖像,如果你不知道選什么圖像,你可以到Docker中心(類似于Git中心);這是一個(gè)docker圖庫,你可以在那里挑選鏡像并開始工作。
好,下面我們用run命令安裝下一個(gè)部分,run和pull類似,都可以檢查圖像是否已經(jīng)下載到本地,如果不把圖從圖庫取出,那么就要打開一個(gè)新的容器來使用圖片。
dockerrun-p8888:8888--nametensorflow-itgcr.io/tensorflow/udacity-assignments:1.0.0
以上參數(shù)基本上用于自定義容器。它標(biāo)識(shí)著地圖的港口,容器的名稱和一個(gè)互動(dòng)虛擬控制臺(tái)。如果這個(gè)命令鎖定了你的終端,這意味著你的終端stdin,stdout和stderr連接到現(xiàn)在運(yùn)行的容器。
通過docker images命令,你可以查看下載在你個(gè)人電腦上不同的圖片。
- REPOSITORY TAG IMAGE ID CREATED SIZE
- rocker/rstudio latest 7a807646f0be 11 days ago 993MB
- gcr.io/tensorflow/udacity-assignments 1.0.0 4e01459e7150 2 months ago
Docker圖像可以定義圖片ID或者上表中的庫。所以,刪除圖片時(shí),你可以使用這個(gè)命令:dockerrmi7a807646f0be
Docker庫
Docker鏡像本質(zhì)上是靜態(tài)的,容器可以啟動(dòng)/停止來做實(shí)際工作。容器使用的是另一個(gè)Docker鏡像,你可以運(yùn)行下面的指令來檢查你的電腦上有什么容器。
dockerps-a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 21d0cdc5051d gcr.io/tensorflow/udacity-assignments:1.0.0 "/run_jupyter.sh" 15 minutes ag
如果刪掉開關(guān),則只能看到當(dāng)前正在運(yùn)行的容器。在我們的例子中,那只是RStudio容器。
那么,你可以停止一個(gè)容器,用這個(gè)指令來實(shí)現(xiàn):docker stopr studio
要開始一個(gè)容器,你可以用這個(gè):docker startr studio
而我通常會(huì)這樣寫:dockerrun-d-p8787:8787-v/c/Users/kushukla:/home/rstudio/kushukla--namerstudiorocker/rstudio
這是因?yàn)槲蚁氪蜷_8787,同時(shí)連接我容器系統(tǒng)的本地字典,這樣一來,我的R密碼在該容器中就可以訪問了。如果你想知道接下來發(fā)生了什么,我可以去瀏覽器打開RStudio,IP是在特定變量環(huán)境和端口下,在Docker中運(yùn)行的。
好了,我的分享暫告一段落,希望能對你有所幫助!
原文鏈接:https://dzone.com/articles/docker-crash-course
作者:KunalShukla
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】