次回
dockerについて学んだことをとにかく書いていく(2つ目) - Qiita
参考図書
Docker/Kubernetes 実践コンテナ開発入門 | 山田 明憲 | コンピュータ・IT | Kindleストア | Amazon
Dockerコンテナオーケストレーションシステム
複数のノードをまたいで多くのコンテナ群を管理する手法
Docker Swarm
- Docker Composeを単一のサーバだけではなく、複数のサーバをまたいで複数のコンテナを管理できるようにしたもの
- 複数のコンテナ群の管理だけではなく、コンテナの増減、ノードのリソースを効率的に利用するためのコンテナを配置や負荷分散などの機能も用意されている
DockerイメージとDockerコンテナの相関
Dockerイメージ
- Dockerコンテナを構成するファイルシステムや実行するアプリケーションをまとめたもの
- コンテナを作成するための利用されるテンプレート
Dockerコンテナ
Dockerイメージをもとに作成され、具現化されたファイルシステムとアプリケーションが実行されている状態
- DockerイメージはUbuntuのファイルシステムと実行するアプリケーションを含む
Dokcerfileのインストラクション(命令)
FROM
dokcerイメージのベースになるやつ
RUN
Dockerイメージビルド時に、Dockerコンテナ内で実行するコマンド
COPY
Dockerを動作させているホストマシン上にファイルやディレクトリをDockerコンテナ内にコピーするためのインストラクション
#イメージのビルド
docker image build -t イメージ名[:タブ名] Dockerfile配置ディレクトリパス
-t オプションには任意のイメージ名を指定可能。オプションであるがほぼ必須
ENTRYPOINT
ENTRYPOINTを利用するとコンテナのコマンド実行の仕方を工夫することができる
- ENTRYPOINTを指定するとCMDの引数はENTRYPOINTで実行するファイルの引数となる
- ENTRYPOINTはイメージの作成者側でコンテナの用途をある程度制限したい場合に活躍できる
その他インストラクチャ
LABEL
イメージの作者名記入
ENV
Dockerfileをもとに生成したDockerコンテナ内で使える環境変数を指定
ARG
ビルド時に情報を埋め込むために使用
Dockerポートフォワーディング
- HTTPリクエストを受けるアプリケーションの場合は、コンテナの外から来たリクエストをコンテナ内で実行しているアプリケーションにまで到達させる必要がある
- ポートフォワーディングではコンテナポートに紐づけ、コンテナの外から来た通信をコンテナポートに転送することができる。
dokcer container run -p {ホスト側ポート}:{コンテナ側ポート} {以下いろいろコマンド}