【发布时间】:2021-11-12 16:41:52
【问题描述】:
我正在使用 docker-compose 在 docker 容器内运行 mysql 服务器,这是我的 yaml 文件:
version: '3'
services:
mysqltest:
image: mysql
network_mode: host
ports:
- "3306:3306"
volumes:
- "/home/myuser/bds/mysql/:/var/lib/mysql"
user: "1000:1000"
environment:
- "MYSQL_ROOT_PASSWORD=mysecret"
容器使用 docker-compose up 命令加载文件,但是当我尝试使用 root 用户从主机连接到 mysql 服务器时,它失败了:
mysql -h 127.0.0.1 -u root -pmysecret
ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)
但是,如果我使用 docker 命令行启动容器,我可以使用相同的命令连接到容器内的服务器:
docker run -it --rm --name mysqltest --user 1000:1000 -v /home/myuser/bds/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysecret -p 3306:3306 -d mysql
我尝试将network_mode设置为host,none,也没有指定它,但是使用docker-compose的结果是一样的。
我的 YAML 文件可能有什么问题,导致我无法像使用 docker 命令一样连接?
提前致谢
【问题讨论】:
-
对我来说,当我没有指定它时它可以工作(= 默认模式是桥接)。你的默认模式是什么?您可以检查: docker network ls 并搜索使用您的 docker-compose 创建的网络
标签: mysql docker docker-compose