赞
踩
在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,大家可能也会遇到需要继续添加2个或者3个端口进行映射的问题。
docker stop container01
docker commit container01 new_image:tag
1888
是服务器的端口,8888
是容器的端口docker run --name container02 -p 1888:8888 new_image:tag
这种方式的优点是不会影响统一宿主机上的其他容器,缺点是管理起来显得比较乱。
systemctl stop docker
docker inspect container-name
得到,但是在Mac中,因为根本找不到该路径.
"ResolvConfPath": "/var/lib/docker/containers/{容器编号}/resolv.conf",
进入docker,方法如下,之后在命令窗口就可以找到容器的配置文件了.
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
(有些mac中并没有tty文件,使用方法2)
docker run -it --name docker_vm --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
以上会安装docker虚拟机,并进入虚拟机,后期可以直接在mac的桌面端进入也行
- # 进入容器的配置文件
- / cd /var/lib/docker/containers/{容器编号}/
- {容器编号}/ ll
- # 列出所有文件
- 9e81be55fbf1c56a12a5ac87a62415439df4d63b454bfa199c8defb94e632475-json.log
- checkpoints
- config.v2.json
- hostconfig.json
- hostname
- hosts
- mounts
- resolv.conf
- resolv.conf.hash
如果之前没有端口映射, 应该有这样的一段:
“PortBindings”:{}
增加一个映射, 这样写:
“PortBindings”:{“8888/tcp”:[{“HostIp”:””,“HostPort”:“1888”}]}
前一个数字是容器端口, 后一个是宿主机端口。将宿主机的1888端口映射到容器的8888端口
如果增加多个,就是
“PortBindings”:{“8888/tcp”:[{“HostIp”:””,“HostPort”:“1888”}],“6006/tcp”:[{“HostIp”:””,“HostPort”:“1006”}]}
将宿主机的1888和1006端口映射到容器的8888和6006端口
而修改现有端口映射更简单, 把端口号改掉就行
如果config.v2.json里面也记录了端口,需要修改ExportPorts
systemctl restart docker
在mac中不用重启,直接通过桌面端重启一下就好
docker inspect container-name
在mac端可以直接可视化的查看是否成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。