gpt4 book ai didi

docker - 如何配置 mariadb docker-compose 文件以使用 3306 以外的其他端口?

转载 作者:行者123 更新时间:2023-12-02 07:25:45 25 4
gpt4 key购买 nike

当使用 docker-compose 文件在 docker 容器中运行 mariadb 时,我无法让 mariadb 使用 3306 以外的其他端口。

我已经阅读了 mariadb/docker 文档,在线搜索并进行了自己的实验。

  1. docker-compose 文件:
version: '3.1'

services:

db:
image: mariadb
restart: always
environment:
- MYSQL_ROOT_PASSWORD=mypassword
- MYSQL_TCP_PORT=33030
- MYSQL_UNIX_PORT=33020
ports:
- "33020:33020"
  • Dockerfile:
  • FROM: mariadb: 10.3.14
    COPY mydbscript.sql /docker-entrypoint-initdb.d/
    EXPOSE 33020
    CMD ["mysqld"]

    它从不使用端口 33020。它仍然使用端口 3306。如何在运行时通过 docker-compose 文件动态传递端口?

    最佳答案

    您需要替换默认的 my.cnf 来为 MariaDB/MySQL 指定自定义端口:

    cd /where/your/docker-compose.yml/located

    docker run -it mariadb cat /etc/mysql/my.cnf > my.cnf

    # use any text editor your like to open my.cnf, search for "port = 3306"
    # and replace it to the port you like to have.

    像这样配置你的 docker-compose.yml:

    version: '3.1'

    services:

    db:
    image: mariadb
    restart: always
    volumes:
    - type: bind
    source: ./my.cnf
    target: /etc/mysql/my.cnf
    environment:
    - MYSQL_ROOT_PASSWORD=mypassword
    # add your other configurations here

    关于docker - 如何配置 mariadb docker-compose 文件以使用 3306 以外的其他端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212960/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com