繁体   English   中英

如何更改Docker Mysql容器连接端口?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM