我正在尝试在服务器上安装多个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