Mariadb容器仍绑定端口3306而不是3310

hwazgwia  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(192)

我尝试在我的服务器上有多个MariaDB Docker容器。第一个使用3307 -〉3306端口第二个使用3311 -〉3310端口
但是,对于第二个,3306端口仍然绑定着码头......
Docker撰写:

version:  '3.7'
services:
  mariadb:
    image: ${MARIADB_VERSION}
    restart: on-failure
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    ports:
      - ${PORTS_MARIADB}
    volumes:
      - db:/var/lib/mysql'
    container_name: ${DB_CONTAINER_NAME}
    networks:
      - network
networks:
  network:
    name: ${NETWORK}
volumes:
  db:

. env.prod(仅数据库部分):

DB_VERSION=mariadb-10.6.4
MARIADB_VERSION=mariadb:10.6.4
MYSQL_ROOT_PASSWORD=fzefzfezfze
MYSQL_DATABASE=db
MYSQL_USER=db
MYSQL_PASSWORD=fzefzezfefze
PORTS_MARIADB=3311:3310

码头集装箱:

CONTAINER ID   IMAGE                       COMMAND                  CREATED              STATUS              PORTS                                                                      NAMES
81849c7db9f8   mariadb:10.6.4              "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp, 0.0.0.0:3311->3310/tcp, :::3311->3310/tcp                        db_prod

是否有办法“解除绑定”此端口?
谢谢

yi0zb3m4

yi0zb3m41#

Docker映像本身“暴露”端口3306。将端口3310绑定到端口3311的事实有所不同。如果希望数据库在主机上的端口3310上可用,则应使用“3310:3306”字符串。

简短说明

在“端口”部分中有2个数字:“AAAA:BBBB”

BBBB

这是暴露在容器内部的端口。图像软件在此端口上执行某些操作。对于MariaDB,它始终是端口3306。
AAAA级
这是您要打开的主机上的端口。如果主机上有一个对该端口的请求进入,则它与Container上的端口BBBB相同。

kkih6yb8

kkih6yb82#

如果要对MariaDB使用端口3310而不是默认端口3306,则需要将环境变量MYSQL_TCP_PORT添加到Docker合成文件中:

environment:
  ...
  MYSQL_TCP_PORT: 3310

相关问题