解决docker run时候启动两个占有不同端口的问题
问题描述:
在执行docker run -p 19918:19918/tcp -v /etc/localtime:/etc/localtime时候后
docker ps查看有启动19918和另一个端口,并在注册中心未发现执行程序。
问题分析:
启动的另一端口为之前配置的,猜测为run时执行了刚刚build的项目外执行了之前的容器。
解决方式:
docker images查看容器,删除相同的以及两个执行出的端口容器。再次执行显示成功!
总结:
命名规范,及时清除不必要的容器。
补充知识:docker中开启时运行多个不同进程,安装ssh,并在启动docker时与jenkins同时启动运行
最近在做jenkins slave节点时,需要安装ssh与master建立链接,这时,slave需要安装ssh服务,但节点重启后,都的手动启动ssh,
为了避免麻烦,想启动的时候运行ssh和jenkins服务
1.在docker运行的时候,启动ssh需要root权限,不然运行sshd很多东西都没有权限
因此docker run 的时候,加个参数--user root
docker run -d --user root --name jenkins_nodes3 --add-host gitlab.com:100.20.20.100 -v /home/_data_slave:/var/jenkins_home -p 8188:8080 -p 51005:50000 -p 8122:22 jenkins_ssh
2.修改/usr/local/bin/jenkins.sh 启动文件,添加以下一行
/usr/sbin/sshd -D > null 2>&1 &
如果是自己的程序,可以重定向日志到自己的日志文件
以上这篇解决docker run时候启动两个占有不同端口的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
下一篇:docker利用单个镜像映射到多个端口操作