問題描述:
在執行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時候啟動兩個占有不同端口的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。