docker容器操作及定制鏡像

1、容器的2種啟動方式:

a、run命令:基于鏡像新建一個容器并啟動容器

docker run options Images command? ( 其中command命令可以不寫,默認命令為/bin/bash )

b、在終止狀態(tài)下的容器,重新進行啟動

2、docker ps -a : 可以查看所有運行過的容器

3、options參數(shù)分為以下幾種:

--name? ? 指定容器的名字

-d? ? 通過后臺運行

-i? ? 交互模式

-t? ? 調(diào)出終端

-p? ? 映射

docker run -p 80:80 nginx:latest? (此時終端進入阻塞模式了,會在本地80端口啟動一個nginx服務(wù),然后通過容器映射到虛擬機上,進行訪問)

測試方法:終端新開一個窗口輸入?curl http://192.168.60.109 (由于是從80映射到80,所以訪問時可以不加端口;如果是從80映射到8000,訪問時就需要加端口了。例如:docker run -p 8000:80 nginx:latest?) ,終端會打印出一串“Thank you for using nginx.”信息,則表示服務(wù)映射開啟成功了:


這時候會發(fā)現(xiàn)終端這邊有打印出一行請求信息:


4、docker ps -q : 列出所有容器的id

-q可以和-a結(jié)合使用,如:docker ps -aq 列出所有運行過的容器的id


5、docker logs + container id : 可以查看容器的運行l(wèi)ogs

6、docker exec -it container id : 進入容器

測試方法:先在后臺啟動一個容器 docker run -d -it ubntu:16.04 ,成功將容器啟動到后臺

再執(zhí)行:docker exec -it + 容器id,就能正常進入容器了。如下:


7、定制鏡像,通過Dockerfile文件來定制的,如下:通過2個命令來實現(xiàn)最簡單的定制


從NGINX執(zhí)行echo命令,重定向到index.html文件

FROM 指定基礎(chǔ)鏡像,即:在什么基礎(chǔ)上面進行修改。如果沒有找到這個鏡像,則會自動先去下載。

8、docker build -t my_nginx:v1 . (注意這個點,一定不要漏掉了)指定build一個my_nginx,指定版本為v1


就會發(fā)現(xiàn)程序先去查找了nginx鏡像,然后執(zhí)行了一個run命令,然后啟動了一個容器,docker images查找一下,就會發(fā)現(xiàn)剛才新啟動的容器了:



9、執(zhí)行一下:docker run -p 80:80 my_nginx:v1 啟動my_nginx終端,新開終端窗口進行訪問:curl http://192.168.60.109:80 就會發(fā)現(xiàn)終端只打印出來“<h1>hello docker </h1>”這行信息,其他信息都被覆蓋掉了。如下:



這時候直接進入容器(注意:進入容器,容器id后面最好加上執(zhí)行路徑文件:/bin/bash ),查看index.html文件也會發(fā)現(xiàn),只輸出了一行hello docker信息,如下:


docker 也是分為客戶端和服務(wù)端的。

10、提個問題:怎么才能把當前目錄文件引入到docker服務(wù)端?

如下:將index.html 拷貝到app目錄


然后啟動下容器,就會發(fā)現(xiàn)文件已經(jīng)正??截惖絘pp目錄了:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容