GAGA LIFE.

インフラエンジニアブログ

スポンサーリンク

Dockerの基本機能(Build/Ship/Run)

概要

Dockerのスローガンである「Build/Ship/Run」について学習したことを記載します。
Dockerの基本的な機能として、以下の3つがあります。

機能 説明
Build Dockerイメージの作成
Ship Dockerイメージの共有
Run Dockerコンテナの動作

f:id:undercovergeek:20180923170742p:plain

Build

「Build」は、コンテナイメージを構築(ビルド)するフェーズ。
Dockerでは、アプリケーションの実行に必要になるプログラム本体/ライブラリ/ミドルウェア/OS/ネットワークの設定などを1つにまとめてDockerイメージを作成します。
Dockerは、「1イメージ=1アプリケーション」として複数コンテナを連携してサービス構築する方法が推奨されています。
主なビルド手順:
   - docker buildコマンド
   - Docker Hub標準機能のAutomated Build
   - CI/CDサービス(Travis CI,Circle CI)※ビルド/テスト/デプロイ
コンテナのバージョン管理では、下記のファイルをGitの作法で管理するのが良いとされています。
これらの構成定義ファイルがGitHubやBitbucketのようなコード管理プラットフォーム上に保管されている場合、ほとんどのレジストリサービスやCI/CDサービスと連携が可能です。
   - Dockerfile:アプリケーション環境をコンテナイメージ化するためのビルド手順を定義
   - Composeファイル:アプリケーション環境の構成を定義

Ship

「Ship」は、DockerイメージをDockerレジストリで共有するフェーズ。
ビルド済みコンテナイメージの保管/バージョン管理/保管済みコンテナイメージの安全性を管理します。
Docker Hub(レジストリ):
   利用可能なコンテナイメージを永続的に保管し、コンテナイメージをバージョン管理していくために使用されるデータストア。
   公式イメージ以外にも個人が作成したイメージをDocker Hubで自由に公開して共有することが可能。
Dockerコマンドを使用するとDocker Hubにログインし、レジストリ上のイメージ検索やアップロード/ダウンロードが可能。
また、Docker Hubは、GitHubやBitbucketと連携することも可能。
例えば、GitHub上でDockerfileを管理し、そこからDockerイメージを自動生成(Automated Build)し、Docker Hubで公開することができます。
セキュリティの問題として、レジストリ上に一度保管して共有したコンテナイメージをアップグレードしないまま放置しているような場合、セキュリティホールなどの脆弱性が残った状態でユーザーに利用され続けてしまうリスクがあります。
そのため、このような問題に対応するために各種機能が用意されています。
   - Docker Context Trust:Dockerイメージの提供者を検証することができる機能
   - Docker Security Scanning:Dockerイメージをスキャンし、既知のセキュリティ上の脆弱性がないことを確認し、イメージの安全性を確認できる機能。

Run

「Run」は、実際にDockerコンテナを動作させるフェーズ。
Dockerは、Linux上でコンテナ単位でサーバ機能を動作させます。
このコンテナの基になるのがDockerイメージ。DockerイメージがあればDockerがインストールされた環境であればどこでもコンテナを動作可能。
コンテナデプロイのために必要になる煩雑な手続きは、クラスタ管理プラットフォームであるコンテナオーケストレーターに託されることが期待されています。
コンテナオーケストレーター:
   - レジストリからPull(ダウンロード)した任意のコンテナイメージをプラットフォーム環境上にデプロイ
   - デプロイしたコンテナに対する定期的なヘルスチェックの実行
   - コンテナの意図しない停止が検知された場合には、コンテナオーケストレーターが持つクラスタ管理機能が動作し、正常稼働している他の収容ノード上にコンテナを再収容するスケジュールがコンテナオーケストレーターのジョブに自動投入されて実行される
上記動作が実行されていますが、ユーザーはその動作の詳細を気にすることなく、それぞれのCaaS(Container as a Service)より提供されるAPIやWebインターフェースを操作することでコンテナ運用管理ができます。

スポンサーリンク