docker.容器管理
第三節.docker容器管理
建立容器常用選項
指令 -i --interactive 互動式 -t --tty 分配一個偽終端 -d --detach 執行容器到後臺 例項 docker container run -itd --name nginx-1 -p 8080:80 nginx:1.15 -a --attach list 附加到執行的容器 docker container attach <id|name> --dns list 設定dns伺服器 -e --env list 設定環境變數 docker container run -itd -e a=123 --name test nginx docker exec -it test sh echo $a #123 --env-file list 從檔案中讀取環境變數 -p --publish list 釋出容器埠到主機 例項 docker container run -itd --name nginx-1 -p 8080:80 nginx:1.15 -P --publish-all 釋出容器的所有EXPOSE的埠到宿主機的隨機埠 -h --hostname string 設定主機名 --ip string 指定容器IP,只能用於自定義網路 --link list 連結容器到另一個網路 --network 連結容器到一個網路 --mount mount 掛載宿主機分割槽到容器 -v --volume list 掛載宿主機目錄到容器 --restart string 容器退出時重啟策略,預設no[always|on-failure] --add-host list 新增其他主機到容器中/etc/hosts 資源限制指令 -m --memory 容器可以使用的最大記憶體 --memory-swap 允許互動到磁碟的記憶體量 --memory-swappiness=<0-100> 容器使用swap分割槽交換的百分比 --memory-reservation 記憶體軟限制,docker檢測主機容器徵用記憶體在記憶體不足時啟用軟限制,使用此選項,值必須設定低於--memory,以使其優先 --oom-kill-disable 當宿主機記憶體不足時,核心會殺死容器中的程序。建議設定了-memory選項再禁用OOM。如果沒有設定,主機可能會耗盡記憶體 --cpus 限制容器可以使用多少可用的cpu資源 --cpuset-cpus 限制容器可以使用的特定CPU --cpu-shares 此值設定為大於或小於預設1024值,以增加或減少容器的權重,並使其可以訪問主機CPU週期的更大或更小比例
管理容器常用命令
ls 列出容器 docker container ls <id|name> inspect 顯示一個或多個容器詳細資訊 docker container inspect <id|name> attach 附加本地標準輸入,輸出和錯誤到一個執行的容器 exec 在執行的容器中執行命令 commit 建立一個新的映象來自一個容器 docker commit <id|name> <img_name>#將容器提交成一個映象 cp 拷貝檔案/資料夾到一個容器 docker container cp <file> <id|name>:/root #或其他目錄 logs 獲取一個容器的日誌 檢視容器日誌 docker logs nginx ls /var/lib/docker/containers/<id> port 列出指定容器的埠對映 docker container port nginx-1 80/tcp -> 0.0.0.0:8080 stats 顯示容器資源使用統計 記憶體利用率 docker container stats <id|name> top 顯示一個容器執行的程序 docker container top nginx-1 UIDPIDPPIDCSTIMETTYTIMECMD root2665626640000:13pts/000:00:00nginx: master process nginx -g daemon off; 1012669226656000:13pts/000:00:00nginx: worker process update 更新一個容器或多個容器配置 動態設定容器使用資源 docker container update --help stop/start rm
進入容器的倆種方法
docker container attach +容器ID 這樣就能進入容器了,但是要注意,用這個方法發退出容器的時候,容器會停止,所以退出時要選擇Ctrl+P+Q退出容器。 一般情況下使用:docker exec -it +容器ID +env 也能進入容器,這個方法退出容器,容器是不會停止的。 export匯出容器檔案系統到tar歸檔檔案 例項 [root@data tmp]# docker export 726f3213bc55 > busybob.tar import匯入容器檔案系統tar歸檔檔案建立映象(預設會多一個名字為none的映象) 例項 [root@data tmp]# docker export 726f3213bc55 > busybob.tar [root@data tmp]# docker image import busybob.tar sha256:9b5f74e2b0beca2b775780d404fd67b9bd65c652661ea59bc178136850785ca9 [root@data tmp]# docker images REPOSITORYTAGIMAGE IDCREATEDSIZE <none><none>9b5f74e2b0be7 seconds ago108MB nginx1.158c9ca4d177022 days ago109MB nginxlatest8c9ca4d177022 days ago109MB docker image import busybob.tar busybob:self #設定倉庫和標籤

第三節.docker容器管理.png