docker 環境のホスト名

2020/06/29   #Docker 
このエントリーをはてなブックマークに追加

host.docker.internal

host.docker.internal
docker 環境からホストをみたい場合に使える。
docker 環境で localhost すると当然自身の docker 環境を指し示すわけだが、
host.docker.internal を指定することでホストを見にいくことができる。
mac と Windows で使えるらしい。

Dockerコンテナ内からホストへlocalhost でアクセスしてみる - Qiita

docker-compose.yml の service名及びcontainer_name

これらもホスト名になる。
この場合、 networks を定義して、

version: '3.5'
services:
  dynamodb-local:
    image: amazon/dynamodb-local:latest
    container_name: dynamodb-local
    ports:
      - "8000:8000"
    command: -jar DynamoDBLocal.jar -dbPath /data
    volumes:
      - $PWD/dynamodb:/data
    networks:
      - dynamodb-local-nw
networks:
  dynamodb-local-nw:
    name: aws-sam-local-nw

例えば aws sam だと --docker-network でネットワークの名前を指定して合わせてあげる。

$ sam local start-api --docker-network aws-sam-local-nw

そうすると sam の docker 内から dynamodb-local という名前で、ホストのサービスにアクセスできる。