服務式的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