1. 程式人生 > 其它 >docker容器化(二)

docker容器化(二)

四、docker容器管理

docker run 映象名稱 這個過程可以理解為:把映象檔案建立成docker容器的一部分,然後再進行啟動

4.1容器命令

在運⾏映象中,後⾯需要帶⼀些指令的資訊,這些指令的資訊具體彙總為如下:

-d:後臺運⾏

-it:互動式命令(bash)

--rm:容器掛掉後⾃動被刪除

--name:給容器起⼀個名字

-p:端⼝對映

4.2容器資訊的檢視

1.先開啟一個控制檯,檢視centos映象,再執行centos,

2.開啟另外一個控制檯,檢視容器執行記錄,獲取到容器的id,

3.檢視容器詳細資訊:docker container inspect containerID

 

 

容器日誌檢視的場景:

假設別人問,你們之前是使用Docker來部署環境嗎?

答:是的

那如果被測試的程式出問題了,你日誌是在哪裡看的,怎麼反饋給開發的?

1.獲取到程式執行的容器ID

2.通過docker logs容器ID來檢視錯誤的日誌

3.日誌資訊獲取成功後,傳送給開發

4.3 log檢視

檢視日誌方式:

1.一種是檢視動態的日誌(日誌在實時的更新,一直檢視最後的日誌資訊)

命令:docker logs -f containerID

 

 

2.一種是檢視靜態的日誌(把日誌檔案下載下來,開啟檢視)

命令:docker logs containerID

 

 

當日志內容很多的時候,只想檢視最後的N行

docker logs containerID | tail -N

4.4容器提交

操作步驟: 1、先進入到容器裡面 docker run -it --rm centos:7.8.2003 bash

2、在容器裡面安裝第三方的軟體 yum install vim

3、檢視容器的ID docker ps -a | grep centps

4、然後提交(提交期間,容器是不能退出) docker commit containerID newImageName

 

 

進入vim怎麼退出?

1.進入vim,按esc

2.再按shift :

3.再輸入q!

使用Docker部署環境流程:(面試題)

1.開發編寫程式碼完成後

2.開發編寫Dockerfile檔案來構建成映象

3.然後使用docker run來啟動映象,也就是容器

4.通過如上步驟就可以完成環境部署,測試可以開始測試

五、Dockerfile實戰

Dockerfile概述

使⽤dockerfile主要是⽤於構建docker映象⽂件資訊,相當於⼀個指令碼,通過dockerfile⾃⼰的指令,來構建軟體依賴,⽂件依賴,儲存等等情況。

其實可以把它理解為操作Docker一系列命令的集合

5.1Dockerfile組成部分

dockerfile的主要組成部分可以彙總為:

基礎映象資訊

製作映象操作指令 RUM

容器啟動時執行指令CMD["/bin/bash"]

5.2Dockerfile基本指令

dockerfile的指令主要可以彙總為如下,使用dockerfile的前提是學習會這些指令的基本使用,具體如下:

FROM #指令基礎映象

MAINTAINER #指定維護者資訊,也可以沒有

RUN #具體執行的操作,在命令前面加上RUN即可

ADD #COPY檔案,會自動進行解壓

WORKDIR #設定當前工作目錄

VOLUME #設定卷,掛載主機目錄

EXPOSE #指定對外的埠

CMD #指定容器啟動後需要乾的事情

COPY #複製檔案

ENV #環境變數

ENIRYPOINT #容器啟動後執行的命令

5.3Dockerfile實戰

5.3.1部署centos

1.在桌面建立一個learnDocker資料夾,在裡面建立一個Dockerfile記事本(去掉.txt字尾)並儲存

2.在控制檯進入到learnDocker目錄下,再輸入docker build .構建映象

3.docker images:檢視所有映象,找到構建的映象id

4.docker tag 737925f1c68f centos_a:修改映象名稱

5.docker run --rm -it centos_a bash:執行這個映象

 

 

 

 

5.3.2部署Nginx

下⾯顯示部署nginx的服務,期望部署是啟動容器後,可以訪問它的地址顯示的資訊。涉及到的nginx的Dockerfile的⽂件內容為:

 

 

 

 重新開啟一個控制檯,驗證nginx服務可執行,輸入命令:curl http://localhost:80

 

 

檢視80埠是否被佔用,開啟一個控制檯輸入命令:netstat -ano | findstr 80

檢視佔用80埠的程序id

再輸入:tasklist | dfindstr pid

如果需要結束程序,開啟工作管理員,找到對應的pid,結束該程序