服务器 
首页 > 服务器 > 浏览文章

解决docker run时候启动两个占有不同端口的问题

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )

问题描述:

在执行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指定udp端口号的问题
下一篇:docker利用单个镜像映射到多个端口操作
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。