docker 添加端口映射_Docker容器修改端口映射
生活随笔
收集整理的這篇文章主要介紹了
docker 添加端口映射_Docker容器修改端口映射
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于已經建立的docker容器,需要新增容器對主機的端口映射,主要分為三種:
一:通過修改配置文件修改docker容器端口映射
1.使用docker ps -a命令找到要修改容器的CONTAINER ID
2.運行以下命令,進入該容器目錄
docker inspect【CONTAINER ID】| grep Id cd /var/lib/docker/containers2.停止容器
docker stop [容器id]3.停止主機docker服務
systemctl stop docker4.進入2得到的文件夾內,修改hostconfig.json 和 config.v2.json
vi hostconfig.json比如新增一個 80 端口,在PortBindings下邊添加以下內容,端口配置之間用英文字符逗號隔開"80/tcp": [ {"HostIp": "0.0.0.0","HostPort": "80"} ] 接著修改vi config.v2.json, 找到ExposedPorts和Ports 仿照之前內容添加端口映射 "ExposedPorts": {"2000/tcp": {} },"Ports":{"2000/tcp":[{"HostIp": "0.0.0.0","HostPort": "2000"} ] },5.保存之后重啟docker服務和容器
systemctl start docker docker start [docker id]二:把運行中的容器生成新的鏡像,再新建容器
1.提交一個運行中的容器為鏡像
docker commit [containerid] [new_imagename]2.運行新建的鏡像并添加端口映射
docker run -d -p 8000:80 [imagename] /bin/sh三:修改主機iptables端口映射
docker的端口映射并不是在docker技術中實現的,而是通過宿主機的iptables來實現。通過控制網橋來做端口映射,類似路由器中設置路由端口映射。如果我們有一個容器的8000端口映射到主機的9000端口,先查看iptabes設置了什么規則:
sudo iptables -t nat -vnL結果中有一條:
Chain DOCKER (2 references) pkts bytes target prot opt in out source destination 98 5872 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0 237 14316 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000 to:172.17.0.3:8000我們可以看到docker創建了一個名為DOKCER的自定義的鏈條Chain。而我開放8000端口的容器的ip是172.17.0.3。
也可以通過inspect命令查看容器ip
docker inspect [containerId] |grep IPAddress我們想再增加一個端口映射,比如8081->81,就在這個鏈條是再加一條規則:
sudo iptables -t nat -A DOCKER -p tcp --dport 8081 -j DNAT --to-destination 172.17.0.3:81加錯了或者想修改:先顯示行號查看
sudo iptables -t nat -vnL DOCKER --line-number刪除規則3
sudo iptables -t nat -D DOCKER 3總結
以上是生活随笔為你收集整理的docker 添加端口映射_Docker容器修改端口映射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cent 8.0 安装tomcat 9.
- 下一篇: 程序员合同日期不到想辞职_程序员被迫辞职