3 回答

TA贡献1848条经验 获得超2个赞
它必须为 docker 内部 IP 公开一个端口,但是每次重新启动时都可以更改 IP。要将端口映射到本地主机,您可以使用标志-p 127.0.0.1:3306:3306
要为 docker 容器指定 IP,您可以创建自己的用户定义的虚拟网络并在启动容器时在此网络上绑定 IP。
docker network create --subnet=192.168.101.0/24 test
docker run -d --name db1 --network test --ip=192.168.101.10 -e MYSQL_ROOT_PASSWORD=12345 mysql:5.7
mysql -h 192.168.101.10 -uroot -p12345
另外,请确保 MySQL 已启动。您可以使用 检查状态docker ps并使用 记录docker logs db1。其中db1用标志指定的名称--name。

TA贡献1798条经验 获得超3个赞
解决方案不是在 Docker MySQL 上工作,而是在基于 Linux 的 Docker 上工作,并使用 mysql + go on it。
创建了一个 Docker 镜像,它是 Ubuntu 18.04 + Mysql Server 5.7 + Golang 1.13 的组合。在Docker Hub上可用。
拉取图像并使用以下命令运行它:-
拉取镜像后,您可以使用以下命令启动 mysql 服务器 -
/etc/init.d/mysql 启动

TA贡献1793条经验 获得超6个赞
您需要使用 docker-p
端口公开 MySQL 端口,例如
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 33060:3306 -d mysql:5.7
然后标准 MySQL 应用程序端口 3306 将在您的主机 IP 上映射到端口 33060。然后在您的 golang 应用程序配置中使用该 IP 和端口。
同样正如@Adrian 指出的那样,等待 MySql 容器完全启动。您可以通过 观看它的日志docker logs -f <CONTAINER_UD>
。一旦您看到它在本地端口 3306 上进行侦听,您的应用程序应该能够连接。
- 3 回答
- 0 关注
- 115 浏览
添加回答
举报