3. docker容器內信息獲取、命令的執行、容器的導入和導出


一、依附容器

依附操作attach通常用在由docker start或者docker restart啟動的交互型容器中。由於docker start啟動的交互型容器並沒有具體終端可以依附,而容器本身是可以接收用戶交互的,這時就需要通過attach命令來將終端依附到容器上。

docker start docker_run:先啟動docker_run容器。 啟動后docker ps可以看到啟動的容器,這是我們發現客戶端顯示的宿主機([root@git ~]#)。 執行docker attach docker_run,終端就已經依附到了容器上,ls顯示的就是容器中的目錄內容。
  • 注意:后台型容器是無法依附終端的,因為它本身就不接受用戶交互輸入。

這里寫圖片描述

二、查看容器日志

首先創建一個不斷輸出一些內容的后台型容器,我命名為docker_logs,是一個包含循環輸出的自然數容器: docker run -d --name docker_logs centos /bin/bash -c "for((i=0;1;i++));do echo $i;sleep 1;done;

這里寫圖片描述

 docker logs -f docker_logs:此命令默認情況下是輸出從容器啟動到執行命令時的所有輸出,但是之后的輸出就不顯示了,-f命令會實時顯示日志。 docker logs -f --tail=5 docker_logs:–tail是控制logs輸出的行數為最后5行。

 

三、查看容器進程

docker top:可以查看容器中正在運行的進程。

這里寫圖片描述

四、查看容器信息

docker inspect [NAME]/[CONTAINER ID]:用於查看容器的配置信息,包含容器名、環境變量、運行命令、主機配置、網絡配置和數據卷配置等: 

這里寫圖片描述

  • -f--format格式化標志,可以查看指定部分的信息。

    • docker inspect --format='{{.State.Running}}' [NAME]/[CONTAINER ID]:查看容器的運行狀態。
    • docker inspect --format='{{.NetworkSettings.IPAddress}} [NAME]/[CONTAINER ID]':查看容器的IP地址。
    • 同時查看多個信息docker inspect --format '{{.Name}} {{.State.Running}}' [NAME]/[CONTAINER ID]:查看容器名和運行狀態。
      這里寫圖片描述

五、容器內執行命令

在容器啟動的時候,通常需要指定其需要執行的程序,然而有時候我們需要在容器運行之后中途啟動另一個程序。從Docker1.3開始,我們可以用docker exec命令在容器中運行新的任務,它可以創建兩種任務:后台型和交互型。

docker exec -d docker_logs touch /etc/exec_new_file:-d:后台型,並在容器中創建一個文件。 

這里寫圖片描述

六、容器的導入和導出

用戶不僅可以把容器提交到公共服務器上,還可以將容器導出到本地文件系統中。
同樣,我們也可以將導出的容器重新導入到Docker運行環境中。導入:`import`,導出:`export`。
 docker export docker_logs > docker_logs_export.tar:把容器的文件系統以tar包的格式導出到標准輸出。 

這里寫圖片描述

cat docker_logs_export.tar | docker import - [res]:[tag]:把打包的容器導入為一個鏡像,res代表鏡像。tag代表標記。 

這里寫圖片描述

docker import url res:tag:還可以通過一個url鏈接來導入網絡上的容器。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM