[docker] 04 使用docker容器
?主要內容:
? ? O、概念
? ? 一、創建&啟動容器
? ? 二、查看容器&查看容器日志
? ? 三、進入&停止&刪除容器?
? ? 四、導入&導出容器
? ? 五、其他容器命令
?
O、概念
Docker容器是鏡像的一個運行實例,容器帶有運行時需要的可寫文件層,而鏡像是靜態的只讀文件。可以使用docker container help命令查看Docker支持的容器操作子命令。
?
一、創建&啟動容器
?1.1.?創建容器命令 (參數可用man docker-create來查看)命令,這樣新建的容器處于停止狀態。
? ?語法:docker create [OPTIONS] CONTAINER [COMMAND] [ARG...]
? ?創建一個apline帶3.8版本的容器:
docker create -it alpine:3.8?
?1.2.?啟動容器命令(參數可用man docker-start來查看),用來啟動已創建的容器。
? ?語法:docker start [OPTIONS] [CONTAINER] [CONTAINER...]
? ?CONTAINER:表示可以同時啟動多個容器。
?
?1.3.?創建并啟動容器命令(參數可用man docker-run來查看),stop容器后也可以用該命令啟動容器。
? ?語法:docker run [OPTIONS] CONTAINER [COMMAND]
? ?常用參數:
? ? -it:-i表示保持標準輸入是否打開,-t表示是否分配一個偽終端;
? ? -d:表示是否在后臺運行容器;
? ? --rm:表示容器退出后是否刪除;
? ? -p:表示映射端口;
? ? --name:指定容器別名;
? ?當用run來創建并啟動容器時,Docker在后臺標準執行如下:
? ? -?檢查本地是否存在鏡像,不存在則下載鏡像;
? ? -?利用鏡像創建并啟動容器;
? ? -?分配一個文件系統給容器,并在只讀的鏡像外層掛載一層可讀寫層;
? ? -?從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去;
? ? -?從網橋的地址池配置一個IP地址給容器;
? ? -?執行用戶指定的應用程序;
? ? -?執行完畢后容器被自動終止;
? ?創建并啟動容器,并允許用戶交互(exit?或 ctrl + d 表示退出):
docker run -it alpine:3.8 /bin/sh?
?1.4.?重啟容器命令(參數可用man docker-restart來查看)。
? ?語法:docker restart [OPTIONS] CONTAINER [COMMAND]
? ?這個命令會將一個運行中的容器先終止,然后再重新啟動。
?
二、查看容器&查看容器日志
?2.1.?查看容器列表命令(參數可用man docker-ps來查看)。
? ?語法:docker ps [OPTIONS]
? ?常用參數:
? ? -a, --all:顯示所有容器,包括停止運行的容器;
? ? -f, --filter:過濾容器(如 -f --name=ne$,表示以ne結尾的容器名);
? ? -l, --latest:顯示最近創建的容器;
? ? --no-trunc:不截斷輸出內容(有時候command那列太長則會顯示不完全);
?
2.2.?查看容器信息命令(參數可用man docker-inspect來查看)。?
? ?語法:docker inspect [OPTIONS] NAME|ID
? ?查看容器的網絡配置,grep用來過濾查看哪個配置,-A用來指定顯示的行數:
docker inspect 8d | grep Networks -A 20?
?
2.3.?查看容器內進程(參數可用man docker-top來查看)。?
? ?語法:docker top CONTAINER
?
2.4.?查看容器統計信息(參數可用man docker-stats來查看),會顯示CPU、內存、存儲、網絡的使用情況信息。?
? ?語法:docker stats [OPTIONS] [CONTAINER...]
docker stats -a?
2.5.?查看容器輸出內容(參數可用man docker-logs來查看),用來獲取容器輸出信息。?
? ?語法:docker logs [OPTIONS] CONTAINER
? ?常用參數:
? ? -f, -follow:保持持續輸出;
? ? -tail string:輸出最近的若干日志:
? ? -t, -timestamps:顯示時間戳信息;
? ? -since string:輸出某個時間開始的日志;
? ? -until string:輸出某個時間之前的日志;
? ? -details:打印詳細信息;
?
三、進入&停止&刪除容器
?3.1.?進入容器命令(參數可用man docker-exec來查看)。
? ?語法:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
? ?進入容器:
docker exec -it 8d /bin/sh? ?
?
?3.2.?暫停&恢復容器命令(參數可用man docker-pause 或 man docker-unpause來查看)。
? ?語法:docker pause CONTAINER [CONTAINER...]? /? docker unpause CONTAINER [CONTAINER...]
? ?暫停和恢復容器:
?
?3.3.?終止容器命令(參數可用man docker-stop)。
? ?語法:docker stop [OPTIONS] CONTAINER [CONTAINER...]
? ?這個命令會先向容器發送SIGTERM信號,等待一段超時時間后(默認10s),再發送SIGKILL信號來終止容器。
? ?清除所有處于停止狀態的容器:
docker container prune?
3.4.?刪除容器命令(參數可用man docker-rm)。
? ?語法:docker rm [OPTIONS] CONTAINER [CONTAINER...]
? ?常用參數:
? ? -f, --force:是否強行終止一個運行中的容器,在沒有-f參數時,rm只能刪除已經停止或退出狀態的容器,不能刪除運行中的容器;
? ? -l, --link:刪除容器的連接,但保留容器;
? ? -v, --volumes:刪除容器掛載的數據卷;
?
四、導入&導出容器
?4.1.?導出容器命令(參數可用man docker-export來查看),用于導出容器到tar文件,這個tar文件是容器當時的快照狀態。
? ?語法:docker export [OPTIONS] CONTAINER
? ?將容器在當前目錄導出為alpine.tar的文件:
docker export -o alpine2.tar 8d 或 docker export > alpine2.tar 8d?
?4.2. 導入容器命令(參數可用man docker-import來查看),用于導入tar文件變為鏡像。
? ?語法:docker import [OPTIONS] FILE|URL [REPOSITORY[:TAG]]
? ?將alpine.tar容器快照到本地鏡像庫,和load的區別在于:鏡像存儲文件會保存所有歷史記錄,而容器快照文件會丟棄所有歷史記錄和元數據信息,在導入時可以重新指定標簽等元數據信息。
docker import alpine2.tar alpine:2?
?
五、其他容器命令
?5.1.?復制文件命令(參數可用man docker-cp來查看),用于容器和主機之間復制文件。
? ?語法:docker?cp?[OPTIONS] CONTAINER:SRC_PATH DEST_PATH | docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
? ?復制本地文件到容器里:
vi test.sh docker cp test.sh 8d:/? ?復制容器文件到本地:
docker cp 8d:/etc/passwd /root?
?5.2.?查看容器變更命令(參數可用man docker-diff來查看)。
? ?語法:docker diff CONTAINER
?
?5.3.?查看容器端口映射(參數可用man docker-port來查看):?
? ?語法:docker port CONTAINER
?
?5.4.?更新容器配置(參數可用man docker-update來查看),用于更新容器一些運行時配置:?
? ?語法:docker port [OPTIONS] CONTAINER [CONTAINER...]
?
轉載于:https://www.cnblogs.com/allbetter/p/11062271.html
總結
以上是生活随笔為你收集整理的[docker] 04 使用docker容器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch笔记:09)Attenti
- 下一篇: 第7.26节 Python中的@prop