Mac-docker动态给Container添加端口映射

最近用docker搭建了hadoop、hive、HBase等集群,搭建完成后想要搭建Flink集群,发现无法动态给Container添加端口映射。上网搜寻一番发现解决之法。

解决方法

  1. 通过docker container ls -a查看container id。
    fc2fc56e823aafd859aa5be3c534d253

  2. Mac 下 Docker Containers配置文件在~/Library/Containers/com.docker.docker目录,进入该目录,我们要修改的文件在Data/vms/0下,进入后发现有个tty文件,使用screen tty登录,会进入一个新的screen窗口,如下:
    e3272a5114ab4a4c4cf077ca67710653

  1. 进入/var/lib/docker/containers目录,发现镜像,选择步骤一所得的Container id为开头的镜像。需要修改两个文件config.v2.json和hostconfig.json
    047b771c5814a263dad77d4f31fcb927
  • config.v2.json文件修改添加Config.ExposedPorts部分, 如我们需要添加8080端口,则在ExposedPorts数组下添加”8080/tcp”:{}项:
    1
    2
    3
    4
    5
    6
    "ExposedPorts":{
    "22/tcp":{
    }
    "8080/tcp":{
    }
    }

hostconfig.json文件修改添加PortBindings部分,还以8080端口为例:

1
2
3
4
5
6
7
8
"PortBindings":{
"8080/tcp":[
{
"HostIp":"",
"HostPort":"8080"
}
]
}

  1. 修改完config.v2.json和hostconfig.json文件,按Ctrl+a,然后迅速按d退出screen。
  2. 杀掉screen进程,如果不杀掉再此进入screen可能会出现乱码现象。运行screen -wipe:
    b062fec15cebf756fdee1390b0cc803c
  3. 重启docker即可生效,若不生效注意config.v2.json和hostconfig.json是否修改对,我修改几次发现里面内容根本没修改,保存后最好检查一下修改内容。

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 解决方法
,