Mac动态给Docker开放端口

流氓凡 技术分享 2022-03-20 3.88 K 0

下载一个容器

docker run -it --privileged --pid=host justincormack/nsenter1

这个命令什么也不要改动,等着就行 下次如果还有改动需求直接进入这个容器不需要重复下载

进入容器接着执行

cd /var/lib/docker/containers && ls

我们会看到类似如下的文件夹

e29f1684f2d44ba979e1f7c6b3857f54b8eda7987a455a5907605570d8a44e41
e2d21b78fdb03c252bde833e0f0d319c908cb9e4992026eb27bbcc0945a10a12
e5096bceac6e89ff2961928b435c64291cff7bf7eadfbe86eda91751d46739e5
f9c1ca21360b2fd0cc41c1f525bf6e8a0fe5d4efbb0bac1fd88647f0fb92ca8a
fc0a2dfbfe2e7917f5b7e19851366545fe0e56cca86f2c2422240ba78ef99c8b

查看container id

不管是使用docker ps,docker ps -a,docker inspect containerName哪种方式先获得容器的id

这里我使用inspect

docker inspect mnginx | grep Id

返回信息如下:

"Id": "27b898aa3e89054dfa5b8c898b01f48b5bb9d59316b8dcb315b63708a702dc9a",

然后我们根据获取到的container id进入对应的目录下可以看到如下内容

27b898aa3e89054dfa5b8c898b01f48b5bb9d59316b8dcb315b63708a702dc9a-json.log
checkpoints
config.v2.json
hostconfig.json
hostname
hosts
mounts
resolv.conf
resolv.conf.hash

修改文件内容

需要修改config.v2.json和hostconfig.json文件对应的端口映射部分

修改config.v2.json

通过vi找到要修改的关键字ExposedPorts,

原先的内容如下:

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

那我们要增加暴露的7890端口,那么就是配置如下:

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

修改完之后保存该文件


修改hostconfig.json

通过vi找到要修改的关键字PortBindings

原先的内容为

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}

那我们要增加7890端口映射到主机的7890端口,那么配置如下:

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}],"7890/tcp":[{"HostIp":"","HostPort":"7890"}]}

修改完之后保存该文件

退出screen

输入ctrl+a+c(先按ctrl,再按a,然后按c即可)

重启Docker后,启动容器,使用docker ps查看端口是否已经绑定成功。




评论