在mac环境下,docker的安装目录和阿里云上是不一样的,所以这里单独备注一下mac下的docker增加端口、映射目录的设置方法。
1.获取id
获取id的方式很多,用你自己熟悉的一种方式就行,只要能获取到id就可以跳入到第2步
docker inspect mnginx | grep Id
// 返回id:"Id": "27b898aa3e89054dfa5b8c898b01f48b5bb9d59316b8dcb315b63708a702dc9a",
2.进入配置文件
这一步是最重要也是最关键的:
Mac下Docker容器的配置文件在~/Library/Containers/com.docker.docker目录,需要修改的文件在Data/vms/0下
cd ~/Library/Containers/com.docker.docker
cd Data/vms/0
3.进入screen
在~/Library/Containers/com.docker.docker/Data/vms/0目录下有一个tty文件,在终端键入screen tty进行登录,此时会进入一个screen空白窗口,回车即可
这里会有另外一种情况“没有tty文件”,会有“screen is terminating 提示”,如果是这种情况请看最下的说明。
docker-desktop:~#
//进入到/var/lib/docker/containers目录 cd /var/lib/docker/containers && ls // 会看到形如如下的一堆数字的文件夹,每个文件夹对一个docker e29f1684f2d44ba979e1f7c6b3857f54b8eda7987a455a5907605570d8a44e41 e2d21b78fdb03c252bde833e0f0d319c908cb9e4992026eb27bbcc0945a10a12 e5096bceac6e89ff2961928b435c64291cff7bf7eadfbe86eda91751d46739e5 //进入到刚刚获取的id的docker中 cd 27b898aa3e89054dfa5b8c898b01f48b5bb9d59316b8dcb315b63708a702dc9a && ls
4.进入容器对应的文件夹
27b898aa3e89054dfa5b8c898b01f48b5bb9d59316b8dcb315b63708a702dc9a-json.log
checkpoints
config.v2.json
hostconfig.json
hostname
hosts
mounts
resolv.conf
resolv.conf.hash
5.修改配置内容
需要修改config.v2.json和hostconfig.json文件对应的端口映射部分,
修改config.v2.json: 在这里编辑端口
"ExposedPorts":{"80/tcp":{},"7890/tcp":{}}
修改hostconfig.json,在这里编辑端口
"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}
6.保存&退出screen&重启docker
输入ctrl+a+c(先按ctrl,再按a,然后按c即可),重启Docker后,启动容器,使用docker ps查看端口是否已经绑定成功。
如果未成功,回到步骤 ⑤ 看下2个文件是否保存
另外一种情况,也是常见情况:
执行screen tty提示screen is terminating 的解决方法:
docker run -it --privileged --pid=host justincormack/nsenter1
执行上面命令,啥也不要改,第一次执行会进入容器终端,接着执行
cd /var/lib/docker/containers && ls
可以看到,这个命令跟我们上面第④步完全一样,但这个不是screen视图,而是我们的docker容器,找到我们要修改的containerId,进入并修改config.v2.json和hostconfig.json即可,然后按照⑦重启即可。
ps.如果已经执行过了第一条命令,再修改其他容器的端口只需要启动nsenter1这个容器,再修改对应容器的配置文件即可。
如需转载请注明: 转载自26点的博客
本文链接地址: Mac系统下给Docker增加端口 热增加
转载请注明:26点的博客 » Mac系统下给Docker增加端口 热增加