docker修改、增加和刪除已創建容器映射端口


在執行docker run可以指定端口映射,但是容器一旦生成,就沒有一個命令可以直接修改,增加和刪除映射端口。下面介紹一個可以修改,增加和刪除已創建容器映射端口的方法。

解決辦法:
1.保存鏡像,再創建一個新的容器,在創建時指定新的端口映射。但是這種方法不推薦
2.修改容器配置文件
配置文件在/var/lib/docker/containers/$container_id/下。container_id可以通過docker inspect c00dfd401fa3 | grep Id獲取。
如果在創建容器時未指定映射端口,我們可以在配置文件hostconfig.json看到"PortBindings":{}這個配置項,在配置文件config.v2.json看到"ExposedPorts":{}的配置項。
我們就是通過修改這兩個配置項,就可以給已創建的容器增加,刪除或者修改映射端口。

案例:配置通過ssh連接到docker容器
一、安裝sshd服務
進入容器
[root@node01 ~]# docker exec -it c00dfd401fa3 bash

安裝sshd服務
[root@test /]# yum install -y openssh-server

啟動並允許sshd自動啟動
[root@test /]# systemctl start sshd
[root@test /]# systemctl enable sshd

二、增加sshd使用的22映射端口
1.關閉容器
[root@node01 ~]# docker stop c00dfd401fa3

2.關閉docker服務
[root@node01 ~]# systemctl stop docker

3.獲取container_id
[root@node01 ~]# docker inspect c00dfd401fa3 | grep Id
        "Id": "c00dfd401fa3e907f266695c60d823671caff3ff3ef422152a226064f4342ef8",

4.修改容器配置文件hostconfig.json
vi /var/lib/docker/containers/c00dfd401fa3e907f266695c60d823671caff3ff3ef422152a226064f4342ef8/hostconfig.json
修改配置項"PortBindings":{}為"PortBindings":{"22/tcp":[{"HostIp":"","HostPort":"10022"}]}

5.修改容器配置文件hostconfig.json
vi /var/lib/docker/containers/c00dfd401fa3e907f266695c60d823671caff3ff3ef422152a226064f4342ef8/config.v2.json
修改配置項"ExposedPorts":{}為"ExposedPorts":{"22/tcp":{}}

6.啟動docker服務
[root@node01 ~]# systemctl start docker

7.啟動容器
[root@node01 ~]# docker start c00dfd401fa3

8.驗證連接容器
外部網絡通過10022端口連接容器
C:\Users\yang>ssh root@192.168.162.128 -p 10022
The authenticity of host '[192.168.162.128]:10022 ([192.168.162.128]:10022)' can't be established.
ECDSA key fingerprint is SHA256:DcwfgepkosH8q1N8Kp8XD0iNFL8h1sVKO0Al2Bs4hiE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.162.128]:10022' (ECDSA) to the list of known hosts.
root@192.168.162.128's password:
Last login: Sun Oct 24 04:34:08 2021 from gateway
[root@test ~]#


容器所在的宿主機連接容器
[root@node01 ~]# ssh root@172.17.0.2 -p 22
root@172.17.0.2's password:
Last login: Sun Oct 24 04:34:02 2021 from 192.168.162.1

以上就是給已創建的容器增加映射端口的方法,當然修改和刪除映射端口也可以按這樣操作。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM