启动docker run时占用两个不同的端口如何解决

这篇文章将为大家详细讲解有关启动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时占用两个不同的端口如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。