docker exec命令能夠在運行著的容器中執(zhí)行命令。
docker exec命令的使用格式:
docker exec [OPTIONS] container_name COMMAND [ARG...]
OPTIONS說明:
-d,以后臺方式執(zhí)行命令;
-e,設(shè)置環(huán)境變量
-i,交互模式
-t,設(shè)置TTY
-u,用戶名或UID,例如myuser:myusergroup
通常COMMAND只能是一條語句,為了支持多個命令的執(zhí)行,需要將多個命令連接起來交給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";
注意:對于已經(jīng)暫?;蛲V沽说娜萜?,無法執(zhí)行docker exec命令,如下將拋出異常:
docker pause myContainer
docker exec myContainer ...
補充:Docker exec 宿主對容器執(zhí)行命令
Docker 下 exec 從宿主機對容器執(zhí)行命名操作
docker exec -it
# 交互可以進入容器 ; exec 也可以在宿主機對容器執(zhí)行命令;
docker attach
# 也是可以進入容器
1、遠程 執(zhí)行命令:文件操作:
docker exec -d nginx1 touch /etc/1.txt
-d:后臺型,在 nginx1 容器中創(chuàng)建一個 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 查看容器的目錄結(jié)構(gòu);
docker diff nginx1
# 查看 nginx1 容器的文件結(jié)構(gòu)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。