日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

docker已啟動容器修改添加端口映射的兩種方法_docker

作者:不懂一休 ? 更新時間: 2022-09-26 編程語言

簡述

正常情況下,在你創建容器時可以添加多個端口映射,寫法如下

每個端口映射都加一個-p
docker run -itd --name centos -p 4000:8081 -p 3306:3306 --privileged centos:latest /usr/sbin/init

如果你已經創建容器并且啟動,在想保留容器已有配置的前提下想修改添加端口映射有如下兩種方法

一、先提交,在配置

如下,我想給 ms_tomcat 容器添加 3306 端口映射

docker ps -a

1、先將容器提交為鏡像

docker commit ms_tomcat ms_tomcat_3306

2、創建新的容器并運行

docker run -itd --name ms_tomcat -p 8081:8080 -p 3306:3306 --restart always --privileged centos:latest /usr/sbin/init

二、 修改配置文件

依然修改ms_tomcat容器,添加 27017 端口

1、關閉docker服務

一定要停止docker服務,我開始忘了關閉,修改兩次都沒成功

systemctl stop docker

2、修改hostconfig.json

vim /var/lib/docker/containers/CONTAINER ID/hostconfig.json

修改CONTAINER ID 為容器id

查看容器id ,輸入 vim /var/lib/docker/containers/ 并粘貼容器id,tab鍵自動補全,最后輸入要修改的文件hostconfig.json


修改如下位置

在 hostconfig.json 里有 "PortBindings":{} 這個配置項,可以改成 "PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}

在配置項 "PortBindings"添加如下配置

3、修改config.v2.json

和上面類似

vim /var/lib/docker/containers/CONTAINER ID/config.v2.json

修改如下位置

在 config.v2.json 里面添加一個配置項 "ExposedPorts":{"80/tcp":{}} , 將這個配置項添加到 "Tty": true, 前面

在配置項 "ExposedPorts"添加如下配置

4、重啟 docker服務

service docker restart

5、查看配置項已經修改成功

docker inspect ms_tomcat

補充:docker容器怎么開端口

方法一

docker commit
docker run -p containerid

通過以上命令創建新的鏡像文件,run -p參數開放新端口出來;實際使用上不方便。

方法二

宿主機(host)上修改iptables 規則,開放容器的響應端口;參考網上的命令

iptables -t nat -A DOCKER -p tcp -dport 8080 -j DNAT --to-destination 172.17.0.2:8080

當我們創建nginx鏡像時,并且啟動nginx時,我們只能在容器內部區訪問nginx的網址。所以為了容器之外能訪問,需要暴露端口,也就需要了將容器內部的端口映射出去。

docker容器暴露端口的形式有四種:

1、-p

將指定的容器端口映射到宿主機所有地址的一個隨機端口

2、-p :

將容器端口映射到指定的主機端口

3、-p ::

將容器端口映射到主機指定ip的隨機端口

4、-p ::

將容器端口映射到指定主機ip的指定端口

總結?

原文鏈接:https://yixiu.blog.csdn.net/article/details/107078157

欄目分類
最近更新