星期一, 3月 13, 2017

[ Docker ] Docker 基本用法(一) 建立及使用container



docker主要是base on底層的image,像是debian,ubuntu之類的,
而他的優點是我要做好幾個image,
但是我只要下載一份debian就可以了,
假設有十個image的環境都是debian,
那十個image都可以共用同一份debian。


由圖可以看出,我建了3個image都是debian的環境,
可是他只會下載一份debian的image。

=================正文=====================

一開始一定要從"FROM"開始寫起,代表你要從哪一個image開始為基底開發,
範例是從debian開始,而stable是他的tag。
(如果沒有在本機的images內,會從Docker hub去抓)

而之後的"RUN"是代表我在做這個image時需要去做哪些事,
我會先把apt-get 給update,並且抓我要的package下來,
最後"WORKDIR"是代表我之後進去container時,
一開始的路徑會是在哪邊。

SourceCode

而寫好了Dockerfile當然需要call docker的command去建立image,
這時要使用"build"的方式來建立。

docker build --force-rm -t debian-env -f $DOCKERFILE .

SourceCode

建立完後就會產生images,用docker images來查看。





建立完image後,接下來就是container了,
每一個container有自己的獨立空間,
可以修改自己的值,
但是image是屬於read only的,所以無法修改,
畢竟他是要給大家用的。

那要如何進入container呢???
第一,我們要先建立container,用"docker create"。
第二,進入container,用"docker start"。

偷吃步的方式是"docker run",這是第一步和第二步的綜合體。













/# docker create <image_id>

 或者也可以使用image name來當參數,

/ # docker create <image_name>

然後用"docker ps -a" 來查看。





如果都建立成功了,那該進去contain環境去做開發了。

/ # docker start -ai <container_id>


就可以進去container裡面了,因為一開始設定是從 "/" 開始,
所以進去就的最開始路徑在那裡。

那如果在contain裡要出來的話直接打 "exit" 就可以了。

如果想要刪除container:

/ # docker rm <container_id>

如果要刪除image:

/ # docker rmi <image_id>

*一次全刪除的方法:
刪掉全部container
/ # docker rm $(docker ps -a -q)

刪掉全部images
/ # docker rmi $(docker images -q)

如果要一次產生container並且進去container內的方法:

/ # docker run -it <images_name> /bin/bash

如果想要連接當前的目錄到container內的話需要用到"-v"的option,


docker run -it -v /Users/cbolong/Documents/ShareDir:/ShareDir kamenv /bin/bash

Ref
Ref 2
Ref 3

沒有留言: