Skip to content

Latest commit

 

History

History
178 lines (145 loc) · 5.43 KB

File metadata and controls

178 lines (145 loc) · 5.43 KB

TOP
前: docker-composeによる複数コンテナの連携
次: -


まとめ

ここまでの内容を振り返ります。

  1. compose-summaryディレクトリを作成し移動してください。

  2. index.htmlを作成してください。内容は何でも良いです。

  3. 以下を満たすdocker-compose.ymlを作成してください。(composeファイルの書き方は日本語マニュアルを参考にする)

    • version: 3
    • testという名前のネットワークを作成
      • ドライバはbridge
    • clientという名前のサービスを作成
      • イメージはnginx:1.19.2
      • ログドライバはjournald
      • 環境変数TARGETserverを設定
      • ネットワークtestに所属
    • serverという名前のサービスを作成
      • イメージはnginx:1.19.2
      • ログドライバはjournald
      • ホストの8080をコンテナの80に接続
      • ホストの./index.htmlをコンテナの/usr/share/nginx/html/index.htmlにマウント
      • ネットワークtestに所属
  4. 上記docker-compose.ymlを使いコンテナをバックグランドで起動してください。

  5. コンテナが動いていることを確認してください。

  6. サービスclientのコンテナにログインし環境変数の設定を確認してください。

  7. サービスclientのコンテナから以下のコマンドを実行し作成したindex.htmlの内容が表示されることを確認してください。

    curl -s $TARGET
  8. ホストOSから以下のコマンドを実行し作成したindex.htmlの内容が表示されることを確認してください。

    curl -s localhost:8080
  9. 以下コマンドでjournalにコンテナのログが出力されていることを確認してください。

    journalctl -xe
  10. dokcer-composeでコンテナを削除してください。

  11. compose-summaryディレクトリを削除してください。

答え(一例です)
  1. 以下コマンドを実行する。
mkdir compose-summary
cd compose-summary
  1. 以下コマンドを実行する。
echo "{任意の文章}" > index.html
  1. 以下コマンドを実行する。
cat <<EOF > docker-compose.yml
version: '3'
services:
  client:
    image: nginx:1.19.2
    logging:
      driver: journald
    environment:
      TARGET: server
    networks:
      - test
  server:
    image: nginx:1.19.2
    logging:
      driver: journald
    ports:
      - "8080:80"
    volumes:
      - ./index.html:/usr/share/nginx/html/index.html
    networks:
      - test
networks:
  test:
    driver: bridge
EOF
  1. 以下コマンドを実行する。
docker-compose up -d
  1. 以下コマンドを実行して確認してください。
$ docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                   NAMES
966bb4a571de   nginx:1.19.2   "/docker-entrypoint.…"   9 seconds ago   Up 8 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   compose-summary-server-1
9332ea644543   nginx:1.19.2   "/docker-entrypoint.…"   9 seconds ago   Up 8 seconds   80/tcp                                  compose-summary-client-1
  1. 以下一連のコマンドを実行して確認してください。
$ docker-compose exec client sh
WARN[0000] /home/ssm-user/docker-practice/compose-summary/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 

# env | grep TARGET
TARGET=server
  1. 以下一連のコマンドを実行して確認してください。
$ docker-compose exec client sh
WARN[0000] /home/ssm-user/docker-practice/compose-summary/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 

# curl -s $TARGET
{任意の文章}

なお5.のコマンドを実行直後の場合は、はじめの $ docker-compose exec client sh を実行する必要はありません
  1. プラクティスの指示コマンドを実行して確認してください。
$ curl -s localhost:8080
nandemo ii

なお、7.のコマンドを実行直後の場合は、 exit コマンドでコンテナから出てください。
  1. プラクティスの指示コマンドを実行して確認してください。
$ journalctl -xe
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit UNIT has begun execution.
░░ 
░░ The job identifier is 25.
Sep 30 00:35:08 ip-10-0-10-220.ap-southeast-2.compute.internal systemd[3760]: Finished systemd-tmpfiles-clean.service - C>
░░ Subject: A start job for unit UNIT has finished successfully
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit UNIT has finished successfully.
░░ 
░░ The job identifier is 25.
lines 151-165/165 (END)
  1. 以下コマンドを実行する。
docker-compose down
  1. 以下コマンドを実行する。
rm -rf compose-summary

TOP
前: docker-composeによる複数コンテナの連携
次: -