我想编写一个 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 终端。一旦我进入容器,整个脚本似乎就会中断,留下包含脚本的父容器。
最佳答案
通过使用下面的一段代码解决了这个问题
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
关于bash - Shell脚本进入Docker容器并执行命令,最终退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51405065/