ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-10-24 08:01:19  阅读:160  来源: 互联网

标签:容器 node01 映射 端口 docker root


在执行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

以上就是给已创建的容器增加映射端口的方法,当然修改和删除映射端口也可以按这样操作。

  

标签:容器,node01,映射,端口,docker,root
来源: https://www.cnblogs.com/orcl-2018/p/15450219.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有