LoginSignup
1
1

More than 3 years have passed since last update.

dockerを使っている人docker-composeを使ってみる

Last updated at Posted at 2020-12-20

はじめに

なお、本記事は以下のUdemy講座を元にした覚書です。
米国AI開発者がゼロから教えるDocker講座

docker-composeを使うと良い時

  • docker run コマンドが長くなるとき
  • 複数のコンテナをまとめて起動するとき

準備

docker-composeが入っているか確認します。(Dockerインストール時に一緒に入っていますが、念のため)

$ $ docker-compose --version
docker-compose version 1.27.4, build 40524192

バージョン情報が出なかった場合、インストールしてください。
Docker Compose のインストール

build contextを用意します。今回の構成は以下の通り。

biuldcontext
project-name
 ∟ docker-compose.yml
 ∟ Dockerfile
 ∟ その他

docker runコマンドをdocker-copose.ymlに書いてみる

dockerコマンドの例
$ docker build .
$ docker run -d -it -v /Users/yukokanai/work/docker/project-name:/project-name -p 8888:8888 {image} bash
$ docker exec -it {コンテナ名}

これをdocker-compose.ymlに書いてみる

docker-compose.yml
version: '3'

services:
  web:
    build: .           #buildから実施
    ports:             #-p ポートフォワーディング
      - '8888:8888'
    volumes:           #-v hostディレクトリ(.)をコンテナディレクトリ(/project-name)にマウント
      - '.:/project-name'
    tty: true          #-t ttyを割り当てます。
    stdin_open: true   #-i STDINを開きます。

実行

#buildcontextに移動
$ cd project-name

#imageがなければbuildとrunを行う(webサーバーとして使いたいので-d)
$ docker-compose up -d
#キャッシュimageを使いたくない場合は以下の様にする
#$ docker-compose up --build -d

# コンテナの中に入る(webはymlに書いたサービス名)
$ docker-compose exec web bash

終了

$ docker-compose down

複数コンテナを作る場合

サンプル

docker-compose.yml

version: '3'

volumes:
  db-data:

services:
  web:
    build: .
    ports:
      - '3000:3000'
    volumes:
      - '.:/my_product-register'
    environment:
      - 'POSTGRES_PASSWORD=postgres'
    tty: true
    stdin_open: true
    depends_on:
      - db
    links:
      - db

  db:
    image: postgres
    volumes:
      - 'db-data:/var/lib/postgresql/data'
    environment:
      - 'POSTGRES_PASSWORD=postgres'
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1