簡體   English   中英

兩個 docker 容器的相同 phpmyadmin 端口

[英]Same phpmyadmin port for two docker containers

我想使用相同的 phpmyadmin 端口並僅為兩個不同的服務創建兩個不同的數據庫。 是否有可能? 我試過這個:

第一個服務的 docker-compose.yml

version: '3.8'
services:
  accounting-software:
    build:
      context: .
      dockerfile: Dockerfile
    command: 'php artisan serve --host=0.0.0.0'
    volumes:
      - .:/app
    ports:
      - 8000:8000
    depends_on:
      - accounting_db
  
  accounting_db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: accounting_software
    ports:
      - "3308:3306"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    environment:
      PMA_HOST: accounting_db
      PMA_USER: root
      PMA_PASSWORD: root
    ports:
      - "8080:80"

      

docker-compose.yml 用於第二個服務

version: '3.8'
services:
  accounting-chat:
    build:
      context: .
      dockerfile: Dockerfile
    command: 'php artisan serve --host=0.0.0.0'
    volumes:
      - .:/app
    ports:
      - 8001:8000
    depends_on:
      - chat_db
  
  chat_db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: accounting_chat
    ports:
      - "3309:3306"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    environment:
      PMA_HOST: chat_db
      PMA_USER: root
      PMA_PASSWORD: root
    ports:
      - "8080:80"

我收到以下錯誤:

來自守護進程的錯誤響應:驅動程序在端點 account-chat_phpmyadmin_1 上編程外部連接失敗(6bed4e2c149b0bf6ed3079f50984c4322cb4fce6c693c3b1c92e8f29229654a7):綁定:端口`080 已分配失敗。

讓我們看看兩個docker-compose文件的最后docker-compose行。 它們都有“8080:80”端口。 如果您需要運行兩個phpmyadmin實例,您應該更改其中之一。 例如,將其中之一更改為“8081:80”,或者您可以運行一個實例。 由於您已更改聊天數據庫端口。

version: '3.8'
services:
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    environment:
      PMA_HOST: accounting_db
      PMA_USER: root
      PMA_PASSWORD: root
    ports:
      - "8080:80"

  accounting-software:
    build:
      context: .
      dockerfile: Dockerfile
    command: 'php artisan serve --host=0.0.0.0'
    volumes:
      - .:/app
    ports:
      - 8000:8000
    depends_on:
      - accounting_db
  
  accounting_db:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: accounting_software
    ports:
      - "3308:3306"
    depends_on:
      - phpmyadmin

  

  accounting-chat:
    build:
      context: .
      dockerfile: Dockerfile
    command: 'php artisan serve --host=0.0.0.0'
    volumes:
      - .:/app
    ports:
      - 8001:8000
    depends_on:
      - chat_db
  
  chat_db_2:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: accounting_chat
    ports:
      - "3309:3306"
    depends_on:
      - phpmyadmin

有關更多詳細信息,第一個端口是您的本地機器端口,第二個端口是用於容器。 由於您的機器上有一個唯一的可用端口,因此您不能在該端口上運行另一個實例,該端口上有一個服務。 它應該被殺死或更改為另一個端口。

暫無
暫無

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

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