簡體   English   中英

具有多個Mysql容器的Docker無法正常工作

[英]Docker with Multiple Mysql Container not working

Docker新手在這里。

我想要實現的目標是使用docker compose運行多個MySQL容器。

這是我的docker-compose.yml:

version: '2'
services:
  mysql:
    build: ./docker-configs/mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - ./data/mysql:/var/lib/mysql
      - ./data/init.d:/docker-entrypoint-initdb.d
  mysql2:
    build: ./docker-configs/mysql2
    ports:
      - "3306:3307"
    environment:
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - ./data/mysql2:/var/lib/mysql2
      - ./data/init.d:/docker-entrypoint-initdb.d  
  nginx-proxy:
     image: jwilder/nginx-proxy
     volumes:
        - /var/run/docker.sock:/tmp/docker.sock:ro
        - /etc/localtime:/etc/localtime:ro
        - ./docker-configs/nginx-proxy/certs:/etc/nginx/certs
     ports:
        - '80:80'
        - '443:443'

但是當我運行docker-compose up -d時,它顯示了以下錯誤:

錯誤:用於咨詢docker_mysql2_1無法啟動服務mysql2:驅動程序無法在端點咨詢上編程外部連接docker_mysql2_1(7eac3d28093db7be7b5c81495ee652f6a1df8208388d33df668f1732a118481a):綁定0.0.0.0:3306失敗:端口已分配

錯誤:對於mysql2無法啟動服務mysql2:驅動程序在端點咨詢docker_mysql2_1(7eac3d28093db7be7b5c81495ee652f6a1df8208388d33df668f1732a118481a)上的外部連接編程失敗

請讓我知道我在這里想念什么?

“端口”陣列配置被反轉。 如果您這樣寫:

port:
  - "3306:3307"

它表示“將主機網絡上的端口3306綁定到容器網絡中的端口3307”。

當您想要完全相反時。

交換數字即可使用

容器mysql已在主機上使用端口3306 ,因此您不能在主機上為mysql2容器分配相同的端口。 將您的mysql2服務配置更改為以下內容,它應該可以工作-

  mysql2:
    build: ./docker-configs/mysql2
    ports:
      - "3307:3307"
    environment:
      MYSQL_ROOT_PASSWORD: admin
    volumes:
      - ./data/mysql2:/var/lib/mysql2
      - ./data/init.d:/docker-entrypoint-initdb.d  

現在,您的mysql2服務將在主機上的端口3307上可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM