如何修改一個已經發布的service的暴露的端口號?


今天要說的這個,其實非常的簡單,就是說······

 

如果你現在已經在swarm集羣中,部署了一個service,這個service對外暴露的端口號是8080,怎麼將它修改爲80端口?

 

比如,在集羣中有個nginx的service,對外提供服務的端口是8080

 

[root@nccztsjb-node-01 ~]# docker service ls 
ID             NAME      MODE         REPLICAS   IMAGE                                   PORTS
xi0du71dqcou   nginx     replicated   3/3        172.20.58.152/middleware/nginx:1.21.4   *:8080->80/tcp
[root@nccztsjb-node-01 ~]# netstat -ntlp |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      16278/dockerd       
[root@nccztsjb-node-01 ~]# 

 

 

現在,要將這個端口改成80端口,也就是說,對外提供服務的端口從8080變成了80了

 

其實,修改也是非常的簡單的,就像下面這樣

 

docker service update --publish-rm published=8080,target=80 --publish-add published=80,target=80 nginx 

 

 

執行這個命令,端口更新的過程如下:

 

[root@nccztsjb-node-01 ~]# docker service update --publish-rm published=8080,target=80 --publish-add published=80,target=80 nginx 
nginx
overall progress: 3 out of 3 tasks 
1/3: running   [==================================================>] 
2/3: running   [==================================================>] 
3/3: running   [==================================================>] 
verify: Service converged 

 

 

代表更新成功了,再來看下service現在的對外端口和各個主機上監聽的端口

 

[root@nccztsjb-node-01 ~]# docker service ls
ID             NAME      MODE         REPLICAS   IMAGE                                   PORTS
08tg8sy9nb1b   nginx     replicated   3/3        172.20.58.152/middleware/nginx:1.21.4   *:80->80/tcp
[root@nccztsjb-node-01 ~]# netstat -ntlp | grep 80
tcp        0      0 127.0.0.1:6012          0.0.0.0:*               LISTEN      18580/sshd: root@pt 
tcp6       0      0 ::1:6012                :::*                    LISTEN      18580/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      16278/dockerd       
[root@nccztsjb-node-01 ~]# 

 

 

到這裏你看到,service監聽的端口已經從8080變成了80了。

 

這個是怎麼實現的,看下更新service的參數,然後你就明白了。

 

  • --publish-rm published=8080,target=80,這個參數是把原來8080到80的映射給刪除了
  • --publish-add published=80,target=80,這個參數是把80映射到了主機的80

 

其實,這個端口的調整也是非常的簡單的,主要就是對2個參數的靈活的應用

 

  • --publish-rm published=8080,target=80
  • --publish-add published=80,target=80

 

OK,今天的主題就到這裏,任何的疑問,歡迎留言······

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章