文章目录
- 解决docker容器映射信息修改问题
- 示例
- 查看容器信息
- 确定容器配置文件
- 修改配置信息
- 重启docker服务
解决docker容器映射信息修改问题
docker容器映射信息修改有两种方式:
- 可以删除容器,根据新的映射要求重新运行容器。该方法会改变运行的容器,对于没有缓存数据的容器来说是最 便捷的 修改方式。
- 可以修改容器配置文件,重启docker服务就可以加载新的映射配置。该方法不会丢失容器中的数据,但是需要重启docker服务,需要重启同一宿主机上的其他容器。
示例
示例是修改Jenkins容器的映射端口,使用的是修改容器配置文件的方式来修改映射信息的。
查看容器信息
执行 docker ps 查看容器运行情况,50000端口当前是没有绑定映射端口的。
确定容器配置文件
首先我们需要找到 目标容器的配置文件目录,示例中 docker 的数据目录是修改过的,指向了/mnt/docker-data
示例容器目录在 /mnt/docker-data/containers/[containerId]
默认容器目录在 /var/lib/docker/containers/[containerId]
完整 containerId 可以通过 docker ps --no-trunc 查看
在目录中找到 hostconfig.json 文件,找到叫 PortBindings 的 key,可以需要修改 PortBindings 的值,修改前需要先把容器停掉,不停止修改配置的话,重启服务配置文件会被覆盖会之前的状态。
修改配置信息
修改容器配置 vi hostconfig.json
在 PortBindings 中补充需要的映射数据
{"8080/tcp":[{"HostIp":"","HostPort":"30002"}],"50000/tcp":[{"HostIp":"","HostPort":"30001"}]}
重启docker服务
systemctl restart docker