Docker操作筆記(二)容器
容器
一、啟動容器
啟動一個容器有兩種方式:
1.基於映象新鍵並啟動一個容器:
所需要的主要命令為docker run
docker run ubuntu:18.04 /bin/echo "hello"
#啟動一個bash終端 docker run -t -i ubuntu:18.04 /bin/bash
其中,-t
選項讓Docker分配一個偽終端(pseudo-tty)並繫結到容器的標準輸入上, -i
則讓容器的標準輸入保持開啟。
當利用 docker run
來建立容器時,Docker 在後臺執行的標準操作包括:
- 檢查本地是否存在指定的映象,不存在就從公有倉庫下載
- 利用映象建立並啟動一個容器
- 分配一個檔案系統,並在只讀的映象層外面掛載一層可讀寫層
- 從宿主主機配置的網橋介面中橋接一個虛擬介面到容器中去
- 從地址池配置一個 ip 地址給容器
- 執行使用者指定的應用程式
- 執行完畢後容器被終止
2.啟動一個已終止容器
可以利用 docker container start
命令,直接將一個已經終止的容器啟動執行。
二、後臺執行容器
可以通過新增 -d
引數來實現。
docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
此時容器會在後臺執行並不會把輸出的結果 (STDOUT) 列印到宿主機上面(輸出結果可以用 docker logs
檢視)。
使用 -d
引數啟動後會返回一個唯一的 id,也可以通過 docker container ls
命令來檢視容器資訊。
要獲取容器的輸出資訊,可以通過 docker container logs 命令。
三、終止容器
可以使用 docker container stop
來終止一個執行中的容器。
此外,當 Docker 容器中指定的應用終結時,容器也自動終止。
docker container stop 216501648b22
四、進入容器
1.attach 命令
#進入終端
docker attach 243c
2.exec 命令
docker exec
後邊可以跟多個引數,這裡主要說明 -i
-t
引數。
只用 -i
引數時,由於沒有分配偽終端,介面沒有我們熟悉的 Linux 命令提示符,但命令執行結果仍然可以返回。
當 -i
-t
引數一起使用時,則可以看到我們熟悉的 Linux 命令提示符。
如果從 stdin 中 exit,不會導致容器的停止。這就是為什麼推薦大家使用 docker exec
的原因。
docker exec -it d63242b36965 bash
五、匯入和匯出
1.匯出容器快照到本地
docker export 7691a814370e > ubuntu.tar
2.匯入容器快照
可以使用 docker import
從容器快照檔案中再匯入為映象
cat ubuntu.tar | docker import - test/ubuntu:v1.0
七、刪除容器
可以使用 docker container rm
來刪除一個處於終止狀態的容器:
docker container rm 40ce498f9d3d
清理所有屬於終止狀態的容器:
docker container prune