[英]How to change Docker Mysql container connection port?
我正在使用node,docker,mysql和sequelize,并尝试将sequelize连接到在docker上运行的mysql容器。 尽管我将“端口”更改为3308-3308,但它只能通过端口3306连接。 当我查找正在运行的容器时,将获得mysql数据库的以下信息:
ticketgo_database_1 docker-entrypoint.sh mysqld Up 3306/tcp,
0.0.0.0:3308->3308/tcp
这就解释了为什么它只能连接到端口3306,但是我需要从3306更改连接端口,因为该端口在我的计算机上很忙。 我怎样才能做到这一点?
MySQL容器
database:
image: mysql
environment:
MYSQL_DATABASE: "ticketgo"
MYSQL_ROOT_PASSWORD: "pass"
volumes:
- "./sql:/docker-entrypoint-initdb.d"
ports:
- "3308:3308"
在“端口”部分中,将第二个端口更改为所需的“ 3308:3309”;
或者,您可以在-p 3309:3308中完成此操作
我猜你的应用也是由docker-compose管理的。 无需更改MySQL在其自己的容器中侦听的端口。 让squelize连接到databade:3306,或者不在MySQL docker compose config中指定端口映射,或者指定: 3308:3306
,这意味着主机上的端口3308将映射到3306容器端口。 这并不意味着MySQL将侦听3308。它将继续在其容器3306中侦听,并且主机上的新端口3308将映射到它。
仅在需要从外部docker-compose服务访问MySQL(例如,从主机上的另一个应用程序或MySQL GUI)访问MySQL时,才指定端口映射
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.