LoginSignup
1
1

More than 3 years have passed since last update.

Docker compose 備忘録

Posted at

Docker とか詳しく分かってない人が Swagger UI を docker で立ち上げるまでの docker-compose 備忘録

Docker インストール

  1. Docker Hub の アカウント作成 & Docker desktop for mac をダウンロード

    Docker Hub

  2. Docker desktop をインストール & インストールチェック

$ docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:18:17 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:17:52 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

launch

  1. swagger.yaml を作成
  2. docker-compose.yml を作成
  3. docker-compose.yml がある階層で docker-compose up -d
  4. http://localhost:3200 にアクセス
  5. Swagger UI がブラウザで見れる!!!!

今回作成した階層構造はこうなりました。

swagger/
  ├ swagger.yaml
  └ docker/
      └ docker-compose.yml

コンテナの起動

  • docker-compose up
    • コマンドを実行した階層の docker-compose.yml をもとにコンテナ起動

exit した場合はコンテナが終了するので docker-compose up -d でデタッチモード (バックグラウンド) で起動すると動き続ける。

  • docker-compose start
    • 停止中のコンテナ起動

コンテナの確認

  • docker-compose ps or docker container ls
$ docker-compose ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                            NAMES
c50f725ebe68        swaggerapi/swagger-ui   "sh /usr/share/nginx…"   25 hours ago        Up 9 hours          80/tcp, 0.0.0.0:3200->8080/tcp   docker_swagger_1

コンテナの停止・削除

  • docker-compose stop

    • コンテナ停止
  • docker-compose down

    • docker-compose で作成されたコンテナ関連削除
    • docker-compose down -v で volume ごと削除

Example

  • 今回使用した docker-compose.yml の例
docker-compose.yml
version: '3'

services:
  swagger:
    image: swaggerapi/swagger-ui
    environment:
      API_URL: /swagger.yaml
      BASE_URL: /
    volumes:
      - ../swagger.yaml:/usr/share/nginx/html/swagger.yaml
    restart: no
    ports:
      - 3200:8080

version

  • 起動する docker の version
    • 3 系が最新

services

  • Docker でアプリケーションを動かすための各要素
    • ls で確認したときの name になる
    • docker_swagger_1

image

  • 起動するコンテナのイメージ
    • ローカルになければリモートから pull ってくる

environment

  • 環境変数
    • image 内の環境変数を設定

volumes

  • マウントする設定ファイル/ディレクトリの指定
    • ホスト内のファイル/ディレクトリ : マウントするファイル/ディレクトリのコンテナ内のパス
volumes:
  - ./dir:/var/www/dir

ホスト上の dir 内でファイルを作るとコンテナの dir 内にも作られる。
(docker-compose.yml から見た相対パス)

一番上の例だと ../swagger.yaml を更新するとコンテナ内の /usr/share/nginx/html/swagger.yaml も更新される。

restart

  • 実行時に再起動するかどうか
option 挙動
no 再起動しない : デフォルト
always 再起動する
on-failure ?
unless-stopped ?

今回は特に気にしてなかったので詳しく調べていません

ports

  • コンテナの port 指定

参考

DockerをMacにインストールする(更新: 2019/7/13) - Qiita

Swagger 3.0のOAuth認証にCognito User PoolsのOAuth Clientを使う | DevelopersIO

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