msakh / Learning

学習内容備忘録
0 stars 0 forks source link

Docker Compose #2

Open msakh opened 4 years ago

msakh commented 4 years ago

Why

Dockerはアプリケーションのデプロイに特化したコンテナで、Dockerコンテナ=単一アプリケーションと言い換えられる。 Dockerを使用し、実用的なシステムを構築するためには、複数のコンテナ間で通信し依存関係を持たせる必要がある。

What

Docker Composeを使い、複数コンテナ実行を一括で管理する方法を学ぶ

msakh commented 4 years ago

docker-compose

yml形式の設定ファイルで複数コンテナの実行を一括管理する

例えばApp用コンテナ、DB用コンテナなどセットで動かす必要のあるもの

msakh commented 4 years ago

docker-compose up

ymlファイルの定義をもとにコンテナ群を起動する。

docker-compose.yml

version: "3"
services:
  echo:
    image: example/echo:latest
    ports:
      - 9000:8080

実行結果

docker-compose up -d
Creating network "docker_default" with the default driver
Creating docker_echo_1 ... done
docker container ls
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
1cd81912b74e        example/echo:latest   "go run /echo/main.go"   16 seconds ago      Up 15 seconds       0.0.0.0:9000->8080/tcp   docker_echo_1
msakh commented 4 years ago

備忘録

docker-compose.ymlのimageとvolumes

volumesを指定するとローカルの修正を反映しやすくなる。

    volumes:
      - .:/app

:の左右で環境を指定 左側:ローカル、右側:コンテナ 上記の場合、ローカルのカレントディレクトリとコンテナ内のappディレクトリを繋ぐ

ローカルを修正後、docker-compose restartで変更の反映が可能。

imageを指定すると固定情報で起動が可能