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重启容器内部服务遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章