概要 †docker-compose で作成したコンテナから、他の docker-compose で作成済みのコンテナにアクセスする方法を記載する。 目次 †サンプルフォルダ構成 †
mycompose1
└── docker-compose.yml mycompose2 └── docker-compose.yml (方法1) ホスト経由でアクセスする †host.docker.internal を使用してホスト経由でアクセスする。 ![]() 1つ目の docker-composemycompose1/docker-compose.yml version: '3' services: mysamplepostgres1_1: hostname: mysamplepostgres1_1 container_name: mysamplepostgres1_1 image: postgres:14 volumes: - "./volumes/pgdata:/var/lib/postgresql/data" environment: - POSTGRES_PASSWORD=postgres ports: - "5433:5432" 2つ目の docker-compose †mycompose2/docker-compose.yml version: '3' services: mysampleadminer1_2: hostname: mysampleadminer1_2 container_name: mysampleadminer1_2 image: adminer ports: - "8080:8080" extra_hosts: - "host.docker.internal:host-gateway" 以上で mysampleadminer1_2 から「host.docker.internal:5433」で postgres にアクセス可能となる。 (方法2) コンテナを同じdockerネットワークに配置する †1つ目の docker-compose †mycompose1/docker-compose.yml version: '3' services: mysamplepostgres2_1: hostname: mysamplepostgres2_1 container_name: mysamplepostgres2_1 image: postgres:14 volumes: - "./volumes/pgdata:/var/lib/postgresql/data" environment: - POSTGRES_PASSWORD=postgres 2つ目の docker-compose †上記の1つ目の docker-compose は デフォルトで mycompose1_default というネットワーク内に配置される為、 mycompose2/docker-compose.yml version: '3' services: mysampleadminer2_2: hostname: mysampleadminer2_2 container_name: mysampleadminer2_2 image: adminer ports: - "8080:8080" networks: default: name: mycompose1_default external: true 以上で mysamplepostgres2_2 から「mysamplepostgres2_1:5432」で postgreSQL にアクセス可能となる。 |