马里亚德布集装箱仍然绑定端口3306而不是3310



我正在尝试在服务器上安装多个MariaDB Docker容器。首先是使用3307->3306端口Secondary正在使用3311->3310端口

但是,第二次,docker仍然绑定3306端口…

Docker Compose:

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

Docker容器ls:

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

有没有办法";解除绑定";这个端口?

感谢

Docker镜像本身"EXPOSEs";端口3306。将端口3310绑定到端口3311的事实有所不同。如果您希望数据库在主机的3310端口上可用;3310:3306";一串

简短解释

在端口部分有两个数字:"AAAA:BBBB";

BBBB

这是暴露在容器内部的端口。Image软件在这个端口上做了一些事情。在MariaDB的情况下,它总是3306端口。

AAAA

这是要打开的主机上的端口。如果主机上对该端口的请求传入,则该请求与容器上的端口BBBB相同。

如果您想使用端口3310而不是MariaDB的默认3306,您需要将环境变量MYSQL_TCP_PORT添加到您的docker组成文件:

environment:
...
MYSQL_TCP_PORT: 3310

相关内容

最新更新