Docker的15個常用命令
1. 獲取最近執行容器的id
這是我們經常會用到的一個操作,按照官方示例,你可以這樣做(環境):
1 2 3 4 |
$ ID=$(docker run ubuntu echo hello world)
hello world
$ docker commit $ID helloworld
fd08a884dc79
|
這種方式在編寫指令碼的時候很有用,比如你想在指令碼中批量獲取id,然後進一步操作。但是這種方式要求你必須給ID賦值,如果是直接敲命令,這樣做就不太方便了。 這時,你可以換一種方式:
1 2 3 4 5 6 7 |
$ alias dl=’docker ps -l -q’
$ docker run ubuntu echo hello world
hello world
$ dl
1904cf045887
$ docker commit `dl` helloworld
fd08a884dc79
|
docker ps -l -q命令將返回最近執行的容器的id,通過設定別名(alias),dl命令就是獲取最近容器的id。這樣,就無需再輸入冗長的docker ps -l -q命令了。通過兩個斜引號“,可以獲取dl命令的值,也就是最近執行的容器的id。
2.儘量在Dockerfile中指定要安裝的軟體,而不用Docker容器的shell直接安裝軟體
說實話,我有時候也喜歡在shell中安裝軟體,也許你也一樣,喜歡在shell中把所有軟體安裝都搞定。但是,搞來搞去,最後還是發現,你還是需要在Doockerfile中指定安裝檔案。在shell中安裝軟體,你要這樣做:
1 2 |
$ docker run -i -t ubuntu bash #登陸到docker容器
[email protected]:/ #
|
然後輸入下面的命令來安裝檔案:
1 |
apt-get install postgresql
|
然後再呼叫exit:
1 |
[email protected]:/ # exit
|
退出docker容器,再給docker commit命令傳遞一個複雜的JSON字串來提交新的映象:
1 |
$ docker commit -run=”{“Cmd”:[“postgres”,”-too -many -opts”] }” `dl` postgres
|
太麻煩了,不是嗎?還是在Dockerfile中指定安裝檔案吧,只要兩個步驟:
1 2 |
1.在一個小巧的Dockerfile中,指定當前操作的映象為FROM命令的引數
2.然後在Dockerfile中指定一些docker的命令,如CMD, ENTERPOINT, VOLUME等等來指定安裝的軟體
|
3.超-超-超級使用者
你可能需要一直用超級使用者來操作docker,就像早期示例裡一直提示的:
1 2 3 4 5 6 7 8 |
# 新增docker使用者組
$
|