區別:1、“docker run”的操作對像是“鏡像”,而“docker exec”的操作對像是“容器”;2、“docker run”適用適合沒有容器運行的情況,而“docker exec”適用於在現有容器中執行命令的情況。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
docker run :根據映像建立一個容器並執行一個指令,操作的物件是映像;
#docker exec :在執行的容器中執行指令,操作的物件是 容器。
「docker run」通常是在新建立的容器中所使用的指令。它適用適合沒有容器運行的情況,您想要建立一個容器,並且要啟動它,然後在其上執行一個進程。
「docker exec」適用於在現有容器中執行指令的情況。如果您已經擁有了一個正在運行的容器,並希望更改該容器或從中獲取某些內容,那麼使用「docker exec」命令就非常合適了。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS說明:
-a stdin: 指定標準輸入輸出內容類型,可選STDIN/STDOUT/STDERR 三項;
##-d: 後台運行容器,並返回容器ID;-i:
以交互模式運行容器,通常與-t 同時使用;-P:
隨機連接埠映射,容器內部連接埠對應到主機的高埠
: 指定連接埠映射,格式為:主機(宿主)連接埠:
容器連接埠-t
--name="nginx-lb"
--dns 8.8.8.8
--dns-search example.com
#-h "mars"
-e username ="ritchie"
#--env-file=[]
--cpuset="0-2" 或 --cpuset="0,1,2"
-m
--net="bridge"
: 加入連結到另一個容器;
--expose=[]:
開放一個連接埠或一組連接埠;#################--volume , -v###: ###綁定一個磁碟區###############實例#########使用docker映像nginx:latest 以後台模式啟動一個容器,並將容器命名為my-nginx。 ###docker run --name my-nginx -p 8081:80 -d nginx:latest
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命令:
docker run -it nginx:latest /bin/bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
-d : 分离模式: 在后台运行
-i : 即使没有附加也保持STDIN 打开
-t : 分配一个伪终端
在容器名称 my-nginx 中开启一个交互模式的终端:
docker exec -it my-nginx /bin/bash
或者使用容器ID 721eb23901ce 开启一个交互模式的终端:
docker exec -it 721eb23901ce /bin/bash
推荐学习:《docker视频教程》
以上是docker run和docker exec指令的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!