![](/img/trans.png)
[英]Docker, multiple MySQL containers on same network - intermittent connection problems
[英]Runing multiple mysql containers with different port using host network
我有一个使用默认端口 3306 在主机上运行的 Mysql 服务器。我想使用网络主机运行一个 MySQL docker 容器,但使用不同的端口。
我的配置是在 docker-compose 文件中定义的。 构建映像并尝试运行容器后,它启动和关闭并带有端口冲突通知。
有没有办法在启动前动态更改容器端口? 我不想使用网桥。
如果使用主机网络是一项硬性要求,那么 Docker 空间中的任何内容都无法控制或限制服务使用或不使用哪些端口。 您需要更改特定于服务的配置文件、环境变量或命令行参数,以使其在其他地方侦听。
特别是对于侦听单个 TCP 端口的服务器(如大多数数据库和基于 HTTP 的服务器),默认的 Docker 网桥/NAT 设置应该可以正常工作; 不需要像主机网络和 macvlan 这样的备用设置。 如果您愿意使用标准设置,这很简单:
version: '3'
services:
mysql:
image: mysql
ports: ['9999:3306'] # listen on host port 9999 instead
docker run --name 'dockername' -e MYSQL_ROOT_PASSWORD='password' -p 1000:3306 -d mysql
docker exec -it 'dockername' mysql -uroot -p
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY 'password'
flush privileges;
这里 1000 是您要运行 mysql docker 容器的端口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.