[英]Shell script to enter Docker container and execute command, and eventually exit
我想編寫一個shell腳本,該腳本進入一個正在運行的docker容器,編輯一個特定文件,然后退出它。
我最初的嘗試是-
將以下命令粘貼到其中
docker exec -it container1 bash sed -i -e 's/false/true/g' /opt/data_dir/gs.xml exit
運行腳本-
bash ./run.sh
但是,一旦腳本進入container1,它將登陸到其bash終端。 好像整個腳本在我進入容器后就立即中斷,而將包含腳本的父容器留在后面。
我覺得你很親密。 您可以嘗試如下操作:
docker exec container1 sed -i -e 's/false/true/g' /opt/data_dir/gs.xml
說明:
-it
是用於交互式會話的,因此您在這里不需要它。 sed
)。 您不必通過bash運行sed
通過使用以下代碼段來解決此問題
myHostName="$(hostname)"
docker exec -i -e VAR=${myHostName} root_reverse-proxy_1 bash <<'EOF'
sed -i -e "s/ServerName .*/ServerName $VAR/" /etc/httpd/conf.d/vhosts.conf
echo -e "\n Updated /etc/httpd/conf.d/vhosts.conf $VAR \n"
exit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.