Linux Docker 自學筆記 (2)

服務式的container

一般我們所使用的都是服務式(daemonized)的container,如:架設Appache web server或是MySQL Server。

服務式(daemonized) containers通常用於:

  • ⻑時間執行的containers
  • 沒有啟動互動式session

他們適用於執行應用程式與服務,如:架設appache web server, mysql等,絕大部分的containers都是daemonized。

啟動daemonized container

docker container run --name daemon_demo -d ubuntu /bin/bash -c "while true; do echo hello world; sleep 1; done"
-d: 知會Docker 脫離(detach) container,轉成背景服務
--detach , -d Run container in background and print container ID


docker contanier run 指令會回傳⼀個container ID,然後回到host提示字元

查看運作中的containers

docker container ls

daemonized container⼀般不會提供互動式的shell,所以無法直接attach到運作中的container,通常的狀況是如果不小心attach進去會發生無法離開的窘況。

Docker 提供 exec 指令,允許使用者另外開⼀個互動式 session 到 daemonized container 內

docker container exec -i -t daemon_demo /bin/bash

停掉daemonized container

docker container stop daemon_demo

檢視Container日誌

顯示最後幾項日誌內容

docker container logs daemon_demo

持續監控container 日誌,類似“tail -f”

docker container logs -f daemon_demo
使用Ctrl-C離開

顯示最後10項日誌內容

docker container logs --tail 10 daemon_demo

顯示每筆日誌的時間資料 ( -t 秀時間)

docker container logs -t daemon_demo
讓除錯更加方便

檢視Contaier資訊

存放images,containers 與container 設定的路徑

/var/lib/docker 目錄


要啟動contaoner後,config.v2.json裡面的ipaddress才會有ip的資訊

檢視設定檔資訊,包含名稱、指令、網路設定與各種有用的資料,官網文件

docker container inspect daemon_demo

傳回container 的運作狀態

docker container inspect --format=‘{{.State.Running }}’ daemon_demo

取得Container的IP 位址

docker container inspect --format ‘{{.NetworkSettings.IPAddress }}’ daemon_demo

停止服務式Container

檢視container 內執行的程序資訊

docker container top daemon_demo
顯示每⼀個程序的ID 與執行該程序的使用者資訊

確認container 在執行中

docker container ls

送SIGTERM 信號給Docker container 內執行的程序

docker container stop daemon_demo

送SIGKILL 信號給container 內執行的程序

docker container kill daemon_demo

刪除Container

必須先停用Container

檢視Container 是否正在運作

docker container ls

如果Container 正在運作,則下指令停用

docker container stop daemon_demo
docker container ls

刪除Container

docker container rm daemon_demo

也可以移除所有的Containers,但是要謹慎

docker container prune