docker - Docker没有在主机上为Mac上的容器打开端口
问题描述
我有一个 docker-compose 文件来运行两个不同版本的 mysql:
version: "3.8"
services:
mysql_5.6:
image: mysql:5.6
restart: always
ports:
- "3307:3306"
mysql_latest:
image: mysql:latest
restart: always
ports:
- "3308:3306"
我从这些开始docker-compose -f docker/docker-compose.yml up -d
。运行docker ps
我得到:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9649cd3df592 mysql:latest "docker-entrypoint.s…" About a minute ago Restarting (1) 28 seconds ago docker_mysql_latest_1
339b5a7f2262 mysql:5.6 "docker-entrypoint.s…" About a minute ago Restarting (1) 28 seconds ago docker_mysql_5.6_1
如您所见,端口部分为空。使用 telnet 或 MySqlWorkbench 连接给了我预期的连接被拒绝。我在 macOS Catalina 上运行 Docker Desktop 2.3.0.3 (45519)。我添加了 Docke 以允许在防火墙设置中打开连接。
如何让 Docker 打开我的 mac 上的端口?
解决方案
似乎问题是我没有指定root密码。这现在有效:
version: "3.7"
services:
mysql_5.6:
image: mysql:5.6.44
restart: always
ports:
- "3307:3306"
environment:
MYSQL_ROOT_PASSWORD: ""
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
mysql_latest:
image: mysql:latest
restart: always
ports:
- "3308:3306"
environment:
MYSQL_ROOT_PASSWORD: ""
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
推荐阅读
- javascript - 加密要稍后解密的数据
- performance - Flutter 低帧率表现
- sql - 在 join 中使用 case 语句
- flutter - 如何在 GoogleSignIn signInSilently 中捕获错误?
- r - 获取在 Shiny 和 grep 中触发的事件(生成的输入)
- azure-sql-database - 查询编辑器无法再连接到 Azure DB
- php - 我可以只在子域上安装 wordpress
- autohotkey - 我需要一个自动热键脚本,它会在一天中的特定时间左键单击
- css - 如何在角材料中嵌套网格列表?
- swift - NSManagedObject 的两个初始化器有什么区别