我尝试在我的服务器上有多个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
是否有办法“解除绑定”此端口?
谢谢
2条答案
按热度按时间yi0zb3m41#
Docker映像本身“暴露”端口3306。将端口3310绑定到端口3311的事实有所不同。如果希望数据库在主机上的端口3310上可用,则应使用“3310:3306”字符串。
简短说明
在“端口”部分中有2个数字:“AAAA:BBBB”
BBBB
这是暴露在容器内部的端口。图像软件在此端口上执行某些操作。对于MariaDB,它始终是端口3306。
AAAA级
这是您要打开的主机上的端口。如果主机上有一个对该端口的请求进入,则它与Container上的端口BBBB相同。
kkih6yb82#
如果要对MariaDB使用端口3310而不是默认端口3306,则需要将环境变量
MYSQL_TCP_PORT
添加到Docker合成文件中: