Docker:MacOS环境下修改容器的端口号

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker:MacOS环境下修改容器的端口号

注意MacOS 和Linux 修改Docker 容器配置方式不一样

本文中 centos7.2 是容器名称

获取容器id

# docker inspect 容器id/容器name
$ docker inspect centos7.2 | grep Id
"Id": "c05fc37444df75bbf0f3277ee36b9997c8ef401568d7c5149bb4aca1c25160b2"

进入Docker终端

# 停止容器
docker stop centos7.2
# 进入docker终端
# 如果卡住,直接回车
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
# 进入容器配置目录
$ cd /var/lib/docker/containers/c05fc37444df75bbf0f3277ee36b9997c8ef401568d7c5149bb4aca1c25160b2
# 容器配置目录文件
$ ls
c05fc37444df75bbf0f3277ee36b9997c8ef401568d7c5149bb4aca1c25160b2-json.log
checkpoints
config.v2.json
hostconfig.json
hostname
hosts
mounts
resolv.conf
resolv.conf.hash
docker-desktop:/var/lib/docker/containers/c05fc37444df75bbf0f3277ee36b9997c8ef401568d7c5149bb4aca1c25160b2
# 退出终端
# `ctrl+a+k`退出终端,输入y

修改端口配置

1、hostconfig.json 添加端口绑定

vi hostconfig.json
# 搜索关键字
/PortBindings
"PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"8082"}]}
# 修改为 相当于运行参数 -p 8086:3306
"PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"8082"}], "3306/tcp":[{"HostIp":"","HostPort":"8086"}]}

2、config.v2.json 加上要暴露的端口

vi config.v2.json
# 搜索关键字
/ExposedPorts
"ExposedPorts":{"8080/tcp":{}}
# 修改为
"ExposedPorts":{"8080/tcp":{}, "3306/tcp":{}}

说明:

  • 8080/tcp 是容器端口
  • "HostPort":"8082" 是宿主主机端口,就是MacOS的端口

重启docker重要,让docker重新读容器的取配置文件)

# 启动容器
$ docker start centos7.2
# 再次查看端口映射,已经生效了
$ docker port centos7.2
3306/tcp -> 0.0.0.0:8086
8080/tcp -> 0.0.0.0:8082

参考

Docker之Mac下直接修改容器配置

Mac动态给Docker开放端口


相关文章
|
2月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
239 57
|
2月前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
236 58
|
2月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
296 11
|
2月前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
197 1
|
3月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
1月前
|
安全 持续交付 Docker
Docker:重塑现代软件交付的容器引擎
Docker:重塑现代软件交付的容器引擎
|
1月前
|
运维 测试技术 Docker
Docker:轻量级容器化技术革命
Docker:轻量级容器化技术革命
|
1月前
|
存储 持续交付 Docker
Docker:颠覆传统开发的轻量级容器革命
Docker:颠覆传统开发的轻量级容器革命
|
3月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
341 12