众所周知,容器一旦生成,端口就无法修改,只能保存镜像后重启容器,本文引入一个新方式进行解决。
思路
容器的创建会拉取镜像,然后根据用户的命令生成容器的配置文件,因此可以直接修改配置文件实现曲线救国。
步骤
停止容器
# docker container stop CONTAINER_ID
停止服务
# systemctl stop docker
修改配置
使用 yum
安装的 docker
配置文件在 /var/lib/docker/container/*
- 星号这里是指 CONTAINER ID
可以看到文件夹内有以下配置文件
$ ll
total 24K
drwx------ 2 root root 4.0K Dec 12 11:54 checkpoints
-rw------- 1 root root 2.9K Dec 12 11:54 config.v2.json
-rw-r--r-- 1 root root 1.6K Dec 12 11:54 hostconfig.json
-rw-r--r-- 1 root root 174 Dec 12 11:54 hosts
-rw-r--r-- 1 root root 89 Dec 12 11:54 resolv.conf
-rw-r--r-- 1 root root 71 Dec 12 11:54 resolv.conf.hash
其中的 hostconfig.json
是容器的端口配置文件
# vim hostconfig.json
可以看到字段
"PortBindings":{}
注意:此例为未开放端口的容器实例。
按照格式添加端口映射即可
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3306"}]}
注意:前部分为容器实例端口,后部分为宿主机端口。若开放多个端口,按照格式添加字段即可。
启动服务
# systemctl start docker
启动容器
若容器无配置健康检查,请启动容器。
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2018-12-12 14:08 PM