国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

關于docker的15個小tip(技巧)

2019-11-02 16:41:28
字體:
來源:轉載
供稿:網友

1. 獲取最近運行容器的id

這是我們經常會用到的一個操作,按照官方示例,你可以這樣做(環境ubuntu):

$ ID=$(docker run ubuntu echo hello world)hello world$ docker commit $ID helloworldfd08a884dc79

這種方式在編寫腳本的時候很有用,比如你想在腳本中批量獲取id,然后進一步操作。但是這種方式要求你必須給ID賦值,如果是直接敲命令,這樣做就不太方便了。 這時,你可以換一種方式:

$ alias dl='docker ps -l -q'$ docker run ubuntu echo hello worldhello world$ dl1904cf045887$ docker commit `dl` helloworldfd08a884dc79

docker ps -l -q命令將返回最近運行的容器的id,通過設置別名(alias),dl命令就是獲取最近容器的id。這樣,就無需再輸入冗長的docker ps -l -q命令了。通過兩個斜引號“,可以獲取dl命令的值,也就是最近運行的容器的id。

2.盡量在Dockerfile中指定要安裝的軟件,而不用Docker容器的shell直接安裝軟件

說實話,我有時候也喜歡在shell中安裝軟件,也許你也一樣,喜歡在shell中把所有軟件安裝都搞定。但是,搞來搞去,最后還是發現,你還是需要在Doockerfile中指定安裝文件。在shell中安裝軟件,你要這樣做:

$ docker run -i -t ubuntu bash #登陸到docker容器root@db0c3967abf8:/#

然后輸入下面的命令來安裝文件:

apt-get install postgresql 

然后再調用exit:

root@db0c3978abf8:/# exit

退出docker容器,再給docker commit命令傳遞一個復雜的JSON字符串來提交新的鏡像:

$ docker commit -run=”{“Cmd”:[“postgres”,”-too -many -opts”] }” `dl` postgres

太麻煩了,不是嗎?還是在Dockerfile中指定安裝文件吧,只要兩個步驟:

1.在一個小巧的Dockerfile中,指定當前操作的鏡像為FROM命令的參數

2.然后在Dockerfile中指定一些docker的命令,如CMD, ENTERPOINT, VOLUME等等來指定安裝的軟件 

3.超-超-超級用戶

你可能需要一直用超級用戶來操作docker,就像早期示例里一直提示的:

# 添加docker用戶組$ sudo groupadd docker# 把自己加到docker用戶組中$ sudo gpasswd -a myusername docker# 重啟docker后臺服務$ sudo service docker restart# 注銷,然后再登陸$ exit

Wow!連續三個sudo!三次化身“超級用戶”,真可謂是“超-超-超級用戶”啊!別擔心,設置完畢,以后你就再也不用打那么多sudo了!

4. 清理垃圾

如果你想刪除所有停止運行的容器,用這個命令:

$ docker rm $(docker ps -a -q)

順便說一句,docker ps命令很慢,不知道為啥這么慢,按理說Go語言是很快的啊。docker ps -a -q命令列出所有容器的id,然后根據id刪除容器。docker rm命令遇到正在運行的容器就會失效,所以這個命令完美的刪除了所有沒在運行的容器。

5. docker inspect輸出結果的解析利器:jq

要對docker inspect的輸出結果進行過濾,一般情況下,用grep命令,你需要這樣操作:

$docker inspect `dl` | grep IPAddress | cut -d ‘“‘ -f 4 172.17.0.52 

哦!看上去很復雜,用jq吧,專業解析docker inspect輸出結果,具有更強的可讀性,方便易用:

$docker inspect `dl` | jq -r ‘.[0].NetworkSettings.IPAddress' 172.17.0.52 

其中第一個'.'代表所有的結果。'[0]'代表數組的第一個元素。就像JavaScript訪問一個JSON對象一樣,簡單方便。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 哈尔滨市| 峨眉山市| 沈丘县| 奉贤区| 峡江县| 怀宁县| 自贡市| 南部县| 宾川县| 泌阳县| 砚山县| 柳州市| 新乡市| 五原县| 洛南县| 崇义县| 陈巴尔虎旗| 武宁县| 黄平县| 溧水县| 宜丰县| 眉山市| 驻马店市| 德阳市| 大邑县| 沙坪坝区| 垣曲县| 澄江县| 施秉县| 福建省| 海城市| 浦北县| 丹江口市| 镇安县| 永安市| 陵川县| 张家川| 施甸县| 兴国县| 区。| 武冈市|