docker exec執行多個命令的操作

docker exec命令能夠在運行著的容器中執行命令。

docker exec命令的使用格式:

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

OPTIONS說明:

-d,以後臺方式執行命令;

-e,設置環境變量

-i,交互模式

-t,設置TTY

-u,用戶名或UID,例如myuser:myusergroup

通常COMMAND隻能是一條語句,為瞭支持多個命令的執行,需要將多個命令連接起來交給Shell,

docker exec命令的使用示例如下:

sudo docker exec myContainer bash -c "cd /home/myuser/myproject && git fetch ssh://gerrit_server:29418/myparent/myproject ${GERRIT_REFSPEC} && git checkout FETCH_HEAD";
sudo docker exec myContainer bash -c "cd /home/myuser/myproject;git fetch ssh://gerrit_server:29418/myparent/myproject ${GERRIT_REFSPEC};git checkout FETCH_HEAD";

註意:對於已經暫停或停止瞭的容器,無法執行docker exec命令,如下將拋出異常:

docker pause myContainer 
docker exec myContainer ...

補充:Docker exec 宿主對容器執行命令

Docker 下 exec 從宿主機對容器執行命名操作

docker exec -it 
# 交互可以進入容器 ; exec 也可以在宿主機對容器執行命令;
docker attach 
# 也是可以進入容器

1、遠程 執行命令:文件操作:

docker exec -d nginx1 touch /etc/1.txt
-d:後臺型,在 nginx1 容器中創建一個 1.txt 文件

2、文件操作 拷貝依然是 cp;

docker cp 1.11.sh nginx1:/root/
# 從宿主機 拷貝文件
docker exec nginx1 ls /root
# 查看 文件
docker exec nginx1 rm -rf /root/1.11.sh
# 刪除文件

3、diff 查看容器的目錄結構;

docker diff nginx1
# 查看 nginx1 容器的文件結構

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。