継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Docker 実践活用ガイド 8章

タダです。

今回はDocker実践活用ガイドの8章を読んだ内容をまとめていきます。 ※記事は理解ができるたびに何度もアップデートしていこうと思います。 book.mynavi.jp

なお、副教材としてドットインストールも使っていこうと思います。

目次

なお、各章の内容は次の通りです。

  • 1章 Dockerとは
  • 2章 Dockerの仕組み
  • 3章 Dockerのインストール
  • 4章 Dockerを使ってみよう(コマンド編)
  • 5章 Dockerを使ってみよう(Kitematic(GUI)編)
  • 6章 Dockerイメージの操作
  • 7章 Dockerを使いこなす
  • 8章 複数のDokcerを使う(Docker Machine、Docker Swarm、Docker Compose)
  • 9章 Dockerをクラウドで使う(Docker Cloud)
  • 10章 DockerとJavaScriptウェブサービスを作る(簡易オンラインジャッジシステム)
  • 11章 DOckerを利用した実運用ウェブサービス構築事例(paizaオンラインジャッジシステム)
  • 12章 paizaの実行環境APIを使いウェブサービスを作る(簡易オンラインジャッッジシステム)
  • 13章 Dockerの内部

8.1

  • Dockerでは複数のDockerホストを管理するための以下のツールを提供している
    • Docker Machine : Dockerホストを構築するためのツール
    • Docker Swarm : 複数のDockerホストをまとめる(クラスタリングする)ツール
    • Docker Compose : 複数のコンテナを利用するサービスを管理するツール

8.2

  • Docker MachineはDockerホストを構築するためのツール
    • DockerホストとsなるHWを用意し、その上にOS、その上にDocker構成する必要がある
    • Docker Machineは、Dokcerホストの構築や管理を行う(Virtualbox,AWS,Azureなどの仮想マシンの構築ができる)
  • 新しくDockerホストを構築するには、docker-machine createを使い、Virtualboxを使う場合、--driver virtualboxオプションを使う
    • docker-machine create --driver virtualbox virtualbox-host
  • EC2の場合、アクセスキーとシークレットアクセスキーを設定しておく必要がある
    • docker-machine create -d amazonec2 --amazonec2-region <region name> --amazonec2-instance-type <instance type> --amazonec2-root-size <Disk Size> --amazonec2-vpc-id <VPC ID> <HostName>
  • 管理しているDockerホストの確認は、docker-machine lsで行う
  • 環境変数は、docker-machine env ホスト名で確認できる
  • Dockerホストの再起動は、docker-machine restartで行う
  • DockerホストのIPアドレス確認は、docker-machine ipで行う
  • DockerホストへのSSHは、docker-machine sshで行う

8.3

  • Docker Swarmは複数のDockerホスト(Swarmノード)をまとめてクラスタを作るためのツール
    • Swarmクラスタでは、SwarmマネージャがDockerホストと同様にDockerサーバとして動作する
    • DockerクライアントからはSwarmマネージャにコンテナ実行などのコマンを送ることができる
    • Swarmクラスタは、外部からは一台のDockerホストと同じように見えるため、Dockerホストに対応したツールとの連携が容易になっている
    • Swarmクラスタ内で、独自のネットワーク(オーバーレイネットワーク)を構築でき、これにより異なるDockerホストでもお互いに通信可能
    • Swarmクラスタは、クラスタ全体を管理するSwarmマネージャ、Dockerホストごとに動作して個々のDockerホストを管理するSwarmエージェント、クラスタの状態を保持するkey-valueストアで構成される
      • key-valueストアとして、Consulを利用する

8.4

  • Docker Composeは複数のコンテナを利用するアプリケーションを管理するためのツール
    • docker-compose.ymlにアプリケーションで利用するコンテナの構成情報を記述しておくことで、ここのコンテナを手動で操作することなくアプリケーション全体をまとめて構築・管理できる
  • WordPressを構成するために、WebとDBに関する定義ファイルを作成すると、以下のようになる
version: '2'
services:
  web:
    image: wordpress
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_HOST: db
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
  • アプリケーションの起動は、docker-compose upで行う
    • バックグランドで起動する場合、-dオプションを指定する
    • サービスの終了は、docker-compose down
  • スケールアップする場合、docker-compose scaleで行う

AWSでDocker Machine,Docker Swarm,Docker Compose動かしてみたら別の記事で作りたい。。 次回は9章です。