首页 > 代码库 > docker exec重启容器内部服务遇到的问题

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

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

[root@VM-1-10-11 ~]# 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来执行标准输入,问题解决

[root@VM-1-10-11 ~]# 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重启容器内部服务遇到的问题