1. 程式人生 > >11、《每天5分鐘玩轉Docker容器技術》學習-Docker命令之容器生命周期管理

11、《每天5分鐘玩轉Docker容器技術》學習-Docker命令之容器生命周期管理

hostman cloudman cloud openstack docker

a) Docker create 命令

docker create :創建一個新的容器但不啟動它

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;

-d: 後臺運行容器,並返回容器ID;

-i: 以交互模式運行容器,通常與 -t 同時使用;

-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;

--name="nginx-lb": 為容器指定一個名稱;

--dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 設置環境變量;

--env-file=[]: 從指定文件讀入環境變量;

--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;

-m :設置容器使用內存最大值;

·--net="bridge": 指定容器的網絡連接類型,支持 bridge/host/none/container:<name|id> 四種類型;

--link=[]: 添加鏈接到另一個容器;

--expose=[]: 開放一個端口或一組端口;

l 實例

使用docker鏡像nginx:latest創建一個容器,並將容器命名為myrunoob

技術分享圖片

b) Docker run 命令

docker run :創建一個新的容器並運行一個命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;

-d: 後臺運行容器,並返回容器ID;

-i: 以交互模式運行容器,通常與 -t 同時使用;

-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;

--name="nginx-lb": 為容器指定一個名稱;

--dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 設置環境變量;

--env-file=[]: 從指定文件讀入環境變量;

--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;

-m :設置容器使用內存最大值;

·--net="bridge": 指定容器的網絡連接類型,支持 bridge/host/none/container:<name|id> 四種類型;

--link=[]: 添加鏈接到另一個容器;

--expose=[]: 開放一個端口或一組端口;

l 實例

使用docker鏡像nginx:latest以後臺模式啟動一個容器,並將容器命名為mynginx。

docker run --name mynginx -d nginx:latest

使用鏡像nginx:latest以後臺模式啟動一個容器,並將容器的80端口映射到主機隨機端口。

docker run -P -d nginx:latest

使用鏡像nginx:latest以後臺模式啟動一個容器,將容器的80端口映射到主機的80端口,主機的目錄/data映射到容器的/data。

docker run -p 80:80 -v /data:/data -d nginx:latest

使用鏡像nginx:latest以交互模式啟動一個容器,在容器內執行/bin/bash命令。

技術分享圖片

c) Docker start/stop/restart 命令

docker start :啟動一個或多少已經被停止的容器

docker stop :停止一個運行中的容器

docker restart :重啟容器

docker start [OPTIONS] CONTAINER [CONTAINER...]

docker stop [OPTIONS] CONTAINER [CONTAINER...]

docker restart [OPTIONS] CONTAINER [CONTAINER...]

l 實例

啟動已被停止的容器myrunoob

docker start myrunoob

停止運行中的容器myrunoob

docker stop myrunoob

重啟容器myrunoob

docker restart myrunoob

d) Docker pause/unpause 命令

docker pause :暫停容器中所有的進程。

docker unpause :恢復容器中所有的進程。

docker pause [OPTIONS] CONTAINER [CONTAINER...]

docker unpause [OPTIONS] CONTAINER [CONTAINER...]

l 實例

暫停數據庫容器db01提供服務。

docker pause db01

恢復數據庫容器db01提供服務。

docker unpause db01

e) Docker exec 命令

docker exec :在運行的容器中執行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

-d :分離模式: 在後臺運行

-i :即使沒有附加也保持STDIN 打開

-t :分配一個偽終端

l 實例

在容器mynginx中以交互模式執行容器內/root/runoob.sh腳本

技術分享圖片

在容器mynginx中開啟一個交互模式的終端

技術分享圖片

f) Docker rm 命令

docker rm :刪除一個或多少容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

-f :通過SIGKILL信號強制刪除一個運行中的容器

-l :移除容器間的網絡連接,而非容器本身

-v :-v 刪除與容器關聯的卷

l 實例

強制刪除容器db01、db02

docker rm -f db01、db02

移除容器nginx01對容器db01的連接,連接名db

docker rm -l db

刪除容器nginx01,並刪除容器掛載的數據卷

docker rm -v nginx01

g) Docker kill 命令

docker kill :殺掉一個運行中的容器。

docker kill [OPTIONS] CONTAINER [CONTAINER...]

-s :向容器發送一個信號

l 實例

殺掉運行中的容器mynginx

runoob@runoob:~$ docker kill -s KILL mynginx

mynginx

11、《每天5分鐘玩轉Docker容器技術》學習-Docker命令之容器生命周期管理