Spring Boot 2.x 和 1.x 的區別
阿新 • • 發佈:2022-04-04
對於已經建立的docker容器,需要新增容器對主機的埠對映,主要分為三種:
一:通過修改配置檔案修改docker容器埠對映
1.找到要修改容器的CONTAINER ID
接著修改vi config.v2.json, 找到ExposedPorts和Ports 仿照之前內容新增埠對映
2.執行新建的映象並新增埠對映
docker ps -a2.進入該容器目錄
docker inspect【CONTAINER ID】| grep Id cd /var/lib/docker/containerid
3.停止容器
docker stop [容器id]4.停止主機docker服務
systemctl stop docker5.進入2得到的資料夾內,修改hostconfig.json 和 config.v2.json vi hostconfig.json 比如新增一個 80 埠,在PortBindings下邊新增以下內容,埠配置之間用英文字元逗號隔開
"80/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "80" } ]
"ExposedPorts": { "2000/tcp": {} }, "Ports": { "2000/tcp":[ { "HostIp": "0.0.0.0", "HostPort": "2000" } ] },5.儲存之後重啟docker服務和容器
systemctl start docker二:把執行中的容器生成新的映象,再新建容器 1.提交一個執行中的容器為映象
docker start [docker id]
docker commit [containerid] [new_imagename]
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我們可以看到docker建立了一個名為DOKCER的自定義的鏈條Chain。而我開放8000埠的容器的ip是172.17.0.3。 也可以通過inspect命令檢視容器ip98 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 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