Docker修改了hostconfig.json重启后,端口被覆盖

首先说明一下,当我们启动一个镜像时,可以通过命令指定容器和宿主机的端口映射。如下:

docker run -d -p 8080:80 xxxx

但是,当我们想修改映射的端口时,可以不用采取删除旧镜像,创建新镜像,反而可以采取修改配置文件实现我们的目的。

执行命令

docker inspect [CONTAINER ID]

我们可以看到,其中"HostPort": "8080"就是我们容器映射的宿主机端口了,我们要做的就是修改它。

"HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "80/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8080"
                    }
                ]
            },

hostconfig.json文件的位置:

cd /var/lib/docker/containers/[CONTAINER ID]

开始采用docker stop [CONTAINER ID]的方式停止docker、修改hostconfig.json、重启docker,发现端口总是被还原,修改一直不生效,最后发现。。

防止修改后重启容器映射端口被还原,按照以下操作进行:

1、首先停止docker服务

# systemctl stop docker

2、编辑 hostconfig.json 修改 HostPort 为新的端口,保存退出。

3、重启docker服务

# systemctl start docker

4、查看镜像是否启动

# docker ps

5、自己的镜像没有启动时,手动启动即可

# docker start [CONTAINER ID]

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值