1. 程式人生 > 其它 >docker學習(二)

docker學習(二)

Docker容器管理

 

 

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

 

 

容器命令

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

-d:後臺運⾏

-it:互動式命令(bash)

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

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

-p:端⼝對映

 

 

docker container inspect 容器id

 

 

 

 

 

容器日誌檢視場景:

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

是的

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

1、獲取到程式執行的容器id

2、通過docker logs 容器id來檢視錯誤的日誌

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

 

 

檢視日誌方式:

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

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

docker logs 容器id

 

 

docker logs -f 容器id

 

 

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

docker logs containerID | tail -N

 

 容器提交

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

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

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

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

圖解:

 

 

 

 

 

 

進入vim怎麼退出:

1.進入vim,按esc

2.再按shift :

3.再輸入q!,按下回車鍵

使用Docker部署環境流程:

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

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

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

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

 

 

什麼是Dockerfile

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

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

 

Dockerfile組成部分

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

• 基礎映象資訊

• 製作映象操作指令 RUM

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

 

Dockerfile基本指令

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

• FROM #指令基礎映象

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

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

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

• WORKDIR #設定當前工作目錄

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

• EXPOSE #指定對外的埠

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

• COPY #複製檔案

• ENV #環境變數

• ENTRYPOINT #容器啟動後執行的命令

 

 部署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:執行這個映象

 

 

 

 

 

 

部署Nginx

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

FROM nginx

MAINTAINER 段舒元

RUN echo "Hi, This Is A Docker Continer WebSite" > /usr/share/nginx/html/index.html

EXPOSE 80

 

 

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

 

 

 

curl: 傳送網路請求

 

當埠被佔用時: