docker~在centos容器(qi)中(zhong)安裝(zhuang)新程序
上一篇我們使用了阿里加速器安裝了centos鏡像,然后(hou)創(chuang)建了(le)(le)(le)一個(ge)新容(rong)器(qi)(qi),運行了(le)(le)(le)這(zhe)個(ge)鏡像(xiang),這(zhe)一講(jiang)我(wo)們來為(wei)這(zhe)個(ge)鏡像(xiang)添加一些(xie)應用程(cheng)序(xu),然后(hou)再保存容(rong)器(qi)(qi),push容(rong)器(qi)(qi)到(dao)倉(cang)儲,大家就(jiu)(jiu)可以(yi)(yi)直接(jie)pull我(wo)生產的(de)容(rong)器(qi)(qi)了(le)(le)(le),可以(yi)(yi)說,docker就(jiu)(jiu)是環(huan)境部(bu)署而產生的(de),它把環(huan)境部(bu)署變得越來越簡單(dan)化了(le)(le)(le)!
一 為容器下載程序,docker run centos yum install net-tools
二 在容器中執行這個程序, docker run centos ping www.baidu.com
三(san) 容器太(tai)多,造成我(wo)們的(de)困(kun)擾,下面我(wo)們來幾個刪除容器的(de)方法(fa)
- $ docker rm #刪除container
- $ docker rmi #刪除image
- $ docker rm `docker ps -a -q` #刪除所有容器
- $ docker run命令加上 --rm=true #每次都自己刪除容器
四 安裝新程(cheng)序后,執(zhi)行程(cheng)序出以(yi)下(xia)錯誤
exec: "wget": executable file not found in $PATH
以上錯(cuo)誤原因(yin)是,你的(de)修改沒(mei)有被提交(jiao),即(ji)這時還沒(mei)有生效,需要提交(jiao)后,docker的(de)鏡像才知(zhi)道的(de)。
五 提交容器的修改
先要查看當前容器的ID號,docker ps -l
再提交這個變更到centos這個容器里,docker commit 52e centos
提交后得到新的ID號
六 查看所有鏡像, docker images
我們看(kan)到新添加的cetnos,e62已經出現(xian)在列表里了,它是(shi)安裝了net-tools程序(xu)的.
七 安(an)裝時,可以直接容(rong)器(qi)里進行安(an)裝,就(jiu)不用(yong)寫docker run這個東西了(le)
docker run -t -i e62 /bin/bash
然后進行(xing)了這個容器下了
可以直接為這個容器(qi)安裝程序,和操作普通的centos一樣
八 提(ti)交后,再次運行新安裝的(de)程序(xu),就成功(gong)了!
在當前容器下(xia),使用(yong)exit退出,回到centos操作(zuo)臺
提交,docker commit 1e5 e62
運行新容器里的程序,docker run netstat
結果,一切(qie)正常(chang)了!
通過(guo)這一講(jiang),我們學習了(le)(le)鏡像,容器(qi)的建立與提交(jiao),也知道了(le)(le)run語句可以(yi)自(zi)己創建新(xin)的容器(qi)!
希望對各位(wei)有所幫助!