宿主机操作docker容器内部命令

想编写一个shell脚本,该脚本会进入一个正在运行的docker容器,编辑一个特定的文件,然后退出它。但是,一旦脚本进入container1,它将登陆到其bash终端。好像整个脚本一进入容器就会中断,而将包含脚本的父容器留在后面。

mac为例。。。


#判断docker服务是否启动
# netstat -anp | grep docker &> /dev/null
# echo $?
# if [[ $? -eq 0 ]];then
#    echo "docker 已经启动了..."

# else
#    echo "docker 没有启动!!!!"
# fi

docker ps |grep ha
echo $?
if [[ $? -eq 0 ]];then
	echo "ha 已经启动了...准备部署。。。。"
	docker exec ha echo "进入docker内部" 
	docker exec ha kill -9 $(netstat -nlp | grep :8888 | awk '{print $7}' | awk -F"/" '{ print $1 }')
	docker exec ha echo "停止进程~~"
	docker exec ha git pull
	docker exec ha echo "已拉取最新的的代码,准备重启容器!" 
	docker restart ha 
	echo "部署完成~"

else
	echo "ha 未启动...准备部署。。。"
	docker start ha
	sleep 10 && echo "睡眠10秒"
	docker exec ha kill -9 $(netstat -nlp | grep :8888 | awk '{print $7}' | awk -F"/" '{ print $1 }') 
	docker exec ha echo "停止进程~~"
	docker exec ha git pull
	docker exec ha echo "已拉取最新的的代码,准备重启容器!" 
	docker restart ha
	echo "部署完成~"
fi

复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享