docker exec重启容器内部服务遇到的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker exec重启容器内部服务遇到的问题相关的知识,希望对你有一定的参考价值。

起因:因为更改ldap域名,老的ldap服务器还是不断有请求发过来,经过排查发现是虚拟机的nslcd发过来的请求,但是nslcd服务配置中配置的是域名而不是ldap的ip地址,试了一下,重启服务才能去连接新的ldap服务,但是由于虚拟机众多,一个一个执行时灰常傻X的,所以打算用docker exec来循环执行,但是执行遇到了问题,如下

[[email protected] ~]# for i in tianpei.wang_172.16.162.105; do docker exec -i $i /etc/init.d/nslcd restart; done

Stopping nslcd: [FAILED]

Starting nslcd: nslcd: daemon may already be active, cannot acquire lock (/var/run/nslcd/nslcd.pid): Permission denied

[FAILED]

权限不够


解决方法:用bash来执行标准输入,问题解决

[[email protected] ~]# for i in tianpei.wang_172.16.162.105; do echo ‘/etc/init.d/nslcd restart‘|docker exec -i $i bash; done

Stopping nslcd: [  OK  ]

Starting nslcd: [  OK  ]


以上是关于docker exec重启容器内部服务遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

docker服务重启后,其中容器启动不了,详见图片

docker容器内怎么连接外部的mysql

如何实现docker服务重启容器不停止

exec...的docker中的EXEC

docker 容器自动启动run

docker容器设置固定IP