Dockerとは何ですか?
Dockerは、アプリケーションの実行に必要なすべて(コード、ライブラリ、ランタイム、システム設定、依存関係)を含む軽量のスタンドアロンパッケージを作成、デプロイ、および管理できるようにするツールです。これらのパッケージはコンテナと呼ばれます。
各コンテナは、個々のカーネルやオペレーティングシステムに依存することなく、独自のCPU、メモリ、ブロックI / O、およびネットワークリソースを使用して展開されます。 Dockerと仮想マシンを比較するのが最も簡単かもしれませんが、リソースを共有または専用にする方法が異なります。
コンテナは、さまざまな方法でLinodeの機能を拡張するのに役立ちます。たとえば、複数のステージング(開発や本番など)を使用してnginxの複数のインスタンスをデプロイできます。複数の仮想マシンをデプロイするのとは異なり、デプロイされたコンテナはLinodeのリソースに負担をかけません。
ドッカー画像
各Dockerコンテナはイメージから作成されます。 Dockerレジストリー(officialDocker Hubなど)からイメージをプルし、それらを使用してコンテナーを構築します。 1つのイメージで多数のコンテナーを作成できます。たとえば、最新のnginxイメージを使用して、次のWebサーバーコンテナをデプロイできます。
- Web開発オペレーション
- テスト
- 生産
- Webアプリケーション
Dockerfiles
Dockerfile
画像をアセンブルするために必要なコマンドを含むテキストファイルです。 Dockerfileが書き込まれると、管理者はdocker build
を使用します ファイル内のコマンドに基づいてイメージを作成するコマンド。 Dockerfile
内のコマンドと情報 特定のソフトウェアバージョンと依存関係を使用して、一貫性のある安定した展開を保証するように構成できます。
Dockerfileは、イメージを構築するために次のコマンドを使用します。
- 追加 -ホスト上のソースから、設定された宛先にあるコンテナ自体のファイルシステムにファイルをコピーします。
- CMD -コンテナ内で特定のコマンドを実行します。
- エントリポイント -コンテナがイメージで作成されるたびに使用されるデフォルトのアプリケーションを設定します。
- ENV -環境変数を設定します。
- 公開 -特定のポートを公開して、コンテナと外部との間のネットワークを有効にします。
- FROM -ビルドプロセスの開始に使用するベースイメージを定義します。
- メンテナ -画像作成者のフルネームとメールアドレスを定義します。
- 実行 -Dockerfilesの中央実行ディレクティブ。
- ユーザー -コンテナを実行するUID(ユーザー名)を設定します。
- ボリューム -コンテナからホストマシン上のディレクトリへのアクセスを有効にします。
- WORKDIR -CMDで定義されたコマンドが実行されるパスを設定します。
すべてのコマンドを使用する必要はありません。以下は、MAINTAINER
のみを使用したDockerfileの動作例です。 、FROM
、およびRUN
コマンド:
- ファイル:Dockerfile
Docker Swarm
Dockerを使用すると、サーバーを簡単に結合して、DockerSwarmと呼ばれるクラスターを形成できます。 Swarmマネージャー、またはリーダーを作成したら 、およびリーダーに接続されたノードを使用すると、コンテナーのデプロイメントをスケールアウトできます。リーダーは、タスクを追加または削除して、目的の状態を維持することにより、クラスターを自動的に適応させます。
ノード Swarmに参加するDockerエンジンの単一インスタンスです。 1つのLinodeで1つ以上のノードを実行できます。 Swarmマネージャーは、入力負荷分散を使用して、Swarmで利用できるようにすることができるサービスを公開します。 Docker Swarmは次のこともできます:
- コンテナの状態を確認してください。
- 単一のDockerイメージから固定されたコンテナのセットを起動します。
- コンテナの数を拡大または縮小します(現在の負荷に応じて)。
- コンテナ間でローリングアップデートを実行します。
- 冗長性とフェイルオーバーを提供します。
- 要求の変化に応じて、コンテナの反復を追加または削除します。
次のステップ
Dockerをさらに詳しく調べるには、Dockerクイックリファレンス、Node.js Webサーバーのデプロイに関するガイド、またはLinodeHowDockerをインストールしてLAMPスタックガイドをデプロイする方法をご覧ください。
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- Docker Docs
- DockerTryitチュートリアル
- DockerHub