docker mysql在不同的端口上

lbo*_*oni 16 mysql docker

我想更改mysql图像docker的默认公开端口,但如果我尝试使用此命令

 docker run --detach --name=test-mysql -p 52000:52000  --env="MYSQL_ROOT_PASSWORD=mypassword" mysql
Run Code Online (Sandbox Code Playgroud)

不工作,mysql -uroot -pmypassword -h 127.0.0.1 -P 52000警告:在命令行界面上使用密码可能不安全.ERROR 2013(HY000):在"读取初始通信数据包"时丢失与MySQL服务器的连接,系统错误:0

如果我使用标准端口3306:3306工作正常,但我想改变端口,它可能吗?

我已经尝试过-p 52000:3600,但我总是:

mysql -uroot -pmypassword -h 127.0.0.1 -P 52000警告:在命令行界面上使用密码可能不安全.ERROR 2013(HY000):在"读取初始通信数据包"时丢失与MySQL服务器的连接,系统错误:0

ani*_*ion 29

还有第二种选择:

不要将一个端口映射到另一个端口,而是使用MYSQL_TCP_PORT- 变量让 mysql 本身直接在另一个端口上运行。

例子:

docker run --detach --name=test-mysql --env="MYSQL_TCP_PORT=52000" mysql


lvt*_*llo 17

您需要在(服务器的)首选TCP端口上映射容器端口3306:

-p <host_port>:<container_port> (map container_port xx on host_port yy)
Run Code Online (Sandbox Code Playgroud)

所以对你的mysql

docker run --detach --name=test-mysql -p 52000:3306  --env="MYSQL_ROOT_PASSWORD=mypassword" mysql
Run Code Online (Sandbox Code Playgroud)