0
点赞
收藏
分享

微信扫一扫

通过配置文件修改docker容器端口号


这个过程分三步:
第一步:找到配置文件
容器的配置文件在 /var/lib/docker/containers 里对应的目录下,里面的目录名都是用ID命名的,所以我们首先要找到这个ID,才能进到正确的目录去配置。这个ID可以通过下面两步来确定

  • 通过docker ps -a 命令,得到容器名或容器ID

~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5241cb464832 nginx "bash" About an hour ago Up 11 minutes 0.0.0.0:8666->80/tcp, 0.0.0.0:8999->8888/tcp MySecond

  • 通过上一步获得的容器名,获得id,这个就是目录名:

~$ sudo docker inspect MySecond | grep Id
"Id": "5241cb4648321bcab7e9837c218598637e2c2f8cf1b359fdddd4f75e09b1618e"

第二步:修改配置文件

  • 首先切换到root用户,否则权限不够

~$ su root
#接着输入密码即可

  • 打开配置文件目录

# cd /var/lib/docker/containers/5241cb4648321bcab7e9837c218598637e2c2f8cf1b359fdddd4f75e09b1618e

  • 按下如下要求修改配置文件:
    要求把宿主机8666端口映射到容器的80端口,把宿主机8999端口映射到容器的8888端口

(1)修改hostconfig.json

# vim hostconfig.json

内容如下:

"PortBindings":{
"80/tcp":[{
"HostIp":"",
"HostPort":"8666"
}],
"8888/tcp":[{
"HostIp":"",
"HostPort":"8999"}]
}

(2)修改config.v2.json
将容器的端口暴露出来。

# vim config.v2.json

内容如下:

"ExposedPorts":{
"80/tcp":{},
"8888/tcp":{}
}

"Ports":{
"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"8666"}],
"8888/tcp":[{"HostIp":"0.0.0.0","HostPort":"8999"}]
}

第三步:重启docker服务

$ sudo service docker restart

$ sudo systemctl start

这样就完成修改已创建的容器的端口信息了。注意:修改后要重启docker服务才能生效


举报

相关推荐

0 条评论