關于Docker 不得不看的上手指南
譯文【51CTO.com快譯】如果你對Docker有所了解,并且正準備開始使用Docker容器引擎,那么你一定不要錯過這篇文章。我們會從Docker容器、鏡像和庫三個方面詳細向你展開介紹。
首先你要知道,Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
先來看看下面這張工作流程圖中,可以幫助你更好的理解Docker的工作模式。
接下來,你要知道關于Docker容器的三項基本內容:
·Docker容器:這是Docker容器運行的一個簡單的虛擬機。
·Docker鏡像:這類似于你在虛擬機上運行的ISO映像,但這是一個高度精簡的版本。窗機中所有多余的安裝包和文庫都已經被刪除。
·Docker庫:這是一個Docker鏡像快照,可以啟動、停止、修改或發布的另一個鏡像。
Docker容器
官方下載之后你就可以在PC端使用你的Docker了,為防止它不慎丟失,你可以用Docker窗口命令再創建一個默認Docker備用。使用命令為:docker-machinecreatedefault.
注:你可以自己設定磁盤的大小和存儲容量,同樣通過上述命令,用指定專用交換機來執行。如果你要做一些數據方面的工作,我強烈建議你設定磁盤分區。你也可以用不同的配置安裝多個Docker窗口備用。檢查窗機使用的命令為:docker-machinels.
這里是輸出樣例:
- NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
- default * virtualbox Running tcp://192.168.99.100:2376 v17.04.0-ce
開始使用Docker,你當然得使用開始命令,然后你可能會跳過輸入窗口名稱這一步,如果有默認名稱的話,不然的話,你還得擬定一個名稱。
要查看你的Docker窗口工作狀態,你可以輸入狀態指令,例如"running"或者"stopped"。
另外需要注意的是,你要確保你的主機操作系統適應所有的Docker窗口的環境變量。Docker-machineenv命令是獲得運行腳本的一個方便的方式,可以用來設置環境變量。
- 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
只需要復制粘貼上面的命令到終端,或者命令提示符,再或者按照備注設置環境變量。
Docker鏡像
關于Docker容器我們先說這么多,現在我們來看看Docker鏡像在容器上的運行。如果你已經了解"庫",那么你就可以通過dockerpullrocker/rstudio命令來下載圖像,如果你不知道選什么圖像,你可以到Docker中心(類似于Git中心);這是一個docker圖庫,你可以在那里挑選鏡像并開始工作。
好,下面我們用run命令安裝下一個部分,run和pull類似,都可以檢查圖像是否已經下載到本地,如果不把圖從圖庫取出,那么就要打開一個新的容器來使用圖片。
dockerrun-p8888:8888--nametensorflow-itgcr.io/tensorflow/udacity-assignments:1.0.0
以上參數基本上用于自定義容器。它標識著地圖的港口,容器的名稱和一個互動虛擬控制臺。如果這個命令鎖定了你的終端,這意味著你的終端stdin,stdout和stderr連接到現在運行的容器。
通過docker images命令,你可以查看下載在你個人電腦上不同的圖片。
- 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或者上表中的庫。所以,刪除圖片時,你可以使用這個命令:dockerrmi7a807646f0be
Docker庫
Docker鏡像本質上是靜態的,容器可以啟動/停止來做實際工作。容器使用的是另一個Docker鏡像,你可以運行下面的指令來檢查你的電腦上有什么容器。
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
如果刪掉開關,則只能看到當前正在運行的容器。在我們的例子中,那只是RStudio容器。
那么,你可以停止一個容器,用這個指令來實現:docker stopr studio
要開始一個容器,你可以用這個:docker startr studio
而我通常會這樣寫:dockerrun-d-p8787:8787-v/c/Users/kushukla:/home/rstudio/kushukla--namerstudiorocker/rstudio
這是因為我想打開8787,同時連接我容器系統的本地字典,這樣一來,我的R密碼在該容器中就可以訪問了。如果你想知道接下來發生了什么,我可以去瀏覽器打開RStudio,IP是在特定變量環境和端口下,在Docker中運行的。
好了,我的分享暫告一段落,希望能對你有所幫助!
原文鏈接:https://dzone.com/articles/docker-crash-course
作者:KunalShukla
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】