Docker は、オペレーティング システム レベルの仮想化を使用してソフトウェアをコンテナと呼ばれるパッケージで配信する、サービスとしてのプラットフォーム (PaaS) 製品のセットです。コンテナは互いに分離されており、独自のソフトウェア、ライブラリ、構成ファイルをバンドルしています。明確に定義されたチャネルを通じて相互に通信できます。すべてのコンテナーは単一のオペレーティング システム カーネルによって実行されるため、仮想マシンよりも使用するリソースが少なくなります。
目次
- ドッカーとは何ですか?
- なぜ Docker が人気があるのでしょうか?
- Dockerfile とは何ですか?
- Docker アーキテクチャとは何ですか? Docker はどのように動作するのでしょうか?
- Dockerイメージとは何ですか?
- Dockerコンテナとは何ですか?
- Docker Hubとは何ですか?
- Docker Compose とは何ですか?
- Docker デスクトップをダウンロードするにはどうすればよいですか?
- Docker コマンド
- ドッカーエンジン
- Docker を使用する理由
- AWS の Docker とは何ですか?
- Dockerコンテナと仮想マシンの違い
- Ubuntu に Docker をインストールする
- サンプル例: Docker を使用したアプリケーションのコンテナ化
- イメージを Docker Hub にプッシュするサンプル例
- Docker Hubからイメージを取得して実行します。
- Docker の利点
- Docker の代替
- Docker セキュリティ
ドッカーとは何ですか?
ドッカー オープンソースです コンテナ化 アプリケーションとそのすべての依存関係をコンテナと呼ばれる標準化された単位にパックできるプラットフォームです。コンテナーは軽量であるため持ち運びが可能で、基礎となるインフラストラクチャーや他のコンテナーから分離されています。実行できます ドッカーイメージ として ドッカーコンテナ Docker がインストールされているマシンであれば、 オペレーティング·システム。
なぜ Docker が人気があるのでしょうか?
Docker が人気を博したのは、ソフトウェアの開発と展開に影響を与えたためです。 docker が普及する主な理由は次のとおりです。
- 携帯性: Docker を使用すると、開発者はアプリケーションをすべての依存関係とともに単一の軽量コンテナーにパッケージ化することが容易になります。これにより、さまざまなコンピューティング環境間で一貫したパフォーマンスを確保できます。
- 再現性: アプリケーションとその依存関係をコンテナー内にカプセル化することで、開発、テスト、運用環境全体でソフトウェアのセットアップの一貫性が保たれます。
- 効率: Docker はコンテナベースのアーキテクチャを通じてリソースの使用率を最適化します。これにより、開発者は単一のホスト システム上で複数の分離されたアプリケーションを実行できます。
- スケーラビリティ: Docker のスケーラビリティ機能により、開発者はワークロード増加時のアプリケーションの処理が容易になりました。
Dockerfile とは何ですか?
の Dockerfile DSL (ドメイン固有言語) を使用し、Docker イメージを生成するための命令が含まれています。 Dockerfile はイメージを迅速に生成するプロセスを定義します。アプリケーションの作成中に、Dockerfile を順番に作成する必要があります。 ドッカーデーモン すべての命令を上から下に実行します。
Javaの配列リストを並べ替える
(単に Docker と呼ばれることも多い Docker デーモンは、システム上の Docker コンテナを管理するバックグラウンド サービスです。)
- これは、実行時に Docker イメージを組み立てるのに役立つ必要なコマンドを含むテキスト ドキュメントです。
- Docker イメージは Dockerfile を使用して作成されます。

Dockerfile について詳しくは、以下を参照してください。 Docker – Dockerfile の概念 。
Docker アーキテクチャとは何ですか? Docker はどのように動作するのでしょうか?
Docker はクライアント/サーバー アーキテクチャを利用します。 Docker クライアントは、Docker コンテナーの構築、実行、配布を支援する Docker デーモンと通信します。 Docker クライアントは同じシステム上のデーモンとともに実行されます。または、Docker クライアントを Docker デーモンにリモートで接続できます。 UNIX ソケットまたはネットワーク上の REST API を利用して、Docker クライアントとデーモンは相互に対話します。 Docker の動作について詳しくは、を参照してください。 Docker のアーキテクチャ 。

Dockerイメージとは何ですか?
これは、Docker コンテナーでコードを実行するために使用される、複数のレイヤーで構成されるファイルです。これらは、Docker コンテナーを作成するために使用される一連の命令です。 Docker Image は、アプリケーションの実行に必要なものがすべて含まれたソフトウェアの実行可能パッケージです。このイメージは、コンテナーがインスタンス化する方法を通知し、どのソフトウェア コンポーネントをどのように実行するかを決定します。 Docker コンテナは、アプリケーション コードと、アプリケーションの実行に必要なすべての依存関係をバンドルする仮想環境です。アプリケーションは、あるコンピューティング環境から別のコンピューティング環境へと迅速かつ確実に実行されます。
Dockerコンテナとは何ですか?
Docker コンテナはイメージのランタイム インスタンスです。開発者は、ライブラリやその他の依存関係など、必要なすべての部分を含むアプリケーションをパッケージ化できます。 Docker コンテナは、Docker イメージのランタイム インスタンスです。コンテナーにはアプリケーションに必要なキット全体が含まれているため、アプリケーションを分離した方法で実行できます。たとえば、NGINX SERVER を含む Ubuntu OS のイメージがあり、このイメージが docker run コマンドで実行されると、コンテナーが作成され、NGINX SERVER が Ubuntu OS 上で実行されます。
Docker Hubとは何ですか?
Docker Hub はリポジトリ サービスであり、インターネット経由でいつでもどこでも Docker コンテナ イメージをプッシュしたり、Docker Hub から Docker コンテナ イメージをプルしたりできるクラウドベースのサービスです。一般に、これにより画像の検索と再利用が簡単になります。 Docker イメージを保存および共有できるプライベートまたはパブリック レジストリとしてイメージをプッシュできるなどの機能を提供します。
マークダウン脚注
主に DevOps チームが Docker Hub を使用します。これはオープンソース ツールであり、すべてのオペレーティング システムで無料で利用できます。これは、画像を保存し、必要なときに画像を取得するストレージのようなものです。 Docker Hub からイメージをプッシュ/プルしたい場合、Docker の基本的な知識が必要です。 Docker ツールの要件について説明しましょう。
Docker Compose とは何ですか?
Docker Compose は、YAML ベースのマルチコンテナ アプリケーションを実行します。 YAML ファイルは、コンテナーのデプロイに必要なすべての構成で構成されます Docker Compose と統合されています Docker Swarm 、コンテナの構築とデプロイの手順を示します。 Docker Compose を使用すると、各コンテナーは単一のホスト上で実行されるように構築されます。
Docker デスクトップをダウンロードするにはどうすればよいですか?
Docker Desktop は、Docker コンテナ、Docker イメージ、および Docker ネットワークで動作するための GUI を提供します。 Docker デスクトップは、Docker Engine、Docker CLI、Docker Compose、 Kubernetes、 アプリケーションをより使いやすくするコンテナの形式で構築、配布、実行するために必要なその他のツール。 Docker デスクトップのインストール方法の詳細については、を参照してください。 Docker デスクトップのサンプル イメージ。
Docker コマンド
必須の docker コマンドの導入により、docker はコンテナ管理プロセスを合理化する強力なソフトウェアになりました。これは、シームレスな開発と展開のワークフローを確保するのに役立ちます。一般的に使用される docker コマンドの一部を次に示します。
- ドッカーの実行: 実行時オプションとコマンドを指定して、イメージからコンテナーを起動するために使用されます。
- ドッカープル: Docker Hub などのコンテナー レジストリからコンテナー イメージをローカル マシンにフェッチします。
- ドッカーps : 実行中のコンテナを、コンテナ ID、使用されているイメージ、ステータスなどの重要な情報とともに表示するのに役立ちます。
- ドッカーストップ : 実行中のコンテナを停止し、コンテナ内のプロセスを正常にシャットダウンするのに役立ちます。
- ドッカーの開始: これは、停止したコンテナを再起動して、以前の状態から操作を再開するのに役立ちます。
- Docker ログイン: Docker レジストリにログインすると、プライベート リポジトリへのアクセスが可能になります。
docker コマンドの詳細については、以下を参照してください。 Docker – 指示コマンド 。
ドッカーエンジン
コンテナをホストするソフトウェアは Docker Engine と呼ばれます。 Docker Engine はクライアント サーバー ベースのアプリケーションです。 Docker エンジンには 3 つの主要コンポーネントがあります。
- サーバ: Docker 上の Docker イメージ、コンテナ、ネットワーク、およびボリュームの作成と管理を担当します。これはデーモン プロセスと呼ばれます。
- REST API : これは、アプリケーションがサーバーと対話する方法を指定し、何を行うかを指示します。
- クライアント: クライアントは docker コマンドライン インターフェイス (CLI) であり、docker コマンドを使用して Docker と対話できるようにします。
Docker を使用する理由
Docker を使用すると、アプリケーションとその依存関係をパックすることができるため、コードを軽量かつ簡単に、より信頼性を高めてより迅速に配布できるようになります。 Docker を使用すると、本番環境でのアプリケーションの実行が非常に簡単になります。Docker エンジンがマシンにインストールされている場合、Docker コンテナーはプラットフォームに依存しません。
- 資源効率 : Docker は、単一ホスト上で複数のコンテナを実行することにより、リソースの使用率を最大化するのに役立ちます。インフラストラクチャのコストを削減し、効率を向上させるのに役立ちます。
- バージョン管理: これにより、アプリケーションとその依存関係のバージョン管理が簡素化され、一貫性が確保され、チーム間のコラボレーションが容易になります。
- マイクロサービスの俊敏性: これにより、マイクロサービス アーキテクチャの導入が可能になり、スケーラビリティ、柔軟性、障害分離の機敏なアプリケーション開発が促進されます。
AWS の Docker とは何ですか?
Docker は、アプリケーションをコンテナの形式で実行するための最も強力なツールです。 Docker コンテナは軽量で、どのオペレーティング システムでも実行できます。
AWS は Amazon Elastic Container Service ( アマゾンECS ) これは、Docker コンテナーをデプロイ、スケーリング、管理できるフルマネージドのコンテナー サービスです。 Amazon ECS は、パフォーマンスに応じて最も信頼性の高いプラットフォームであり、負荷分散、サービス検出、コンテナーの健全性モニタリングなどの他の AWS サービスと統合することもできます。について詳しく知るには Amazon Elastic Container Service (Amazon ECS) 。
Dockerコンテナと仮想マシンの違い
Docker コンテナと仮想マシンの違いは次のとおりです。
Dockerコンテナ 第 3 正規形 | 仮想マシン |
|---|---|
Docker コンテナには、アプリケーション自体に加えて、バイナリ、ライブラリ、構成ファイルが含まれています。 | 仮想マシン (VM) はハイパーバイザ上で実行され、複数の仮想マシンを独自のオペレーティング システムとともに 1 台のマシン上で実行できます。 |
コンテナーごとにゲスト OS が含まれておらず、基盤となる OS カーネルに依存しているため、コンテナーが軽量になります。 | 各 VM には、オペレーティング システムの独自のコピーと、アプリケーションおよび必要なバイナリが含まれるため、VM のサイズが大幅に大きくなり、より多くのリソースが必要になります。 |
コンテナーは、同じホスト OS 内の他のコンテナーとリソースを共有し、OS レベルのプロセス分離を提供します。 | これらはハードウェア レベルのプロセス分離を提供しますが、起動が遅くなります。 |
Ubuntu に Docker をインストールする
次の手順では、ubuntu に Docker をインストールします。
ステップ 1: 古いバージョンの Docker を削除する
- 次のコマンドを実行して、古いバージョンの Docker ソフトウェアを削除します。
$ sudo apt-get remove docker docker-engine docker.io containerd runc>
ステップ 2: Docker エンジンのインストール
- Docker エンジンのインストールには次のコマンドが使用されます。
$ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-clicontainerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>>
ステップ 3: Docker のインストールを確認する
- 次のコマンドでコンテナーを実行して、Docker がシステムに正常にインストールされているかどうかを確認します。
$ sudo docker run hello-world>
ubuntu での docker のインストールの詳細については、これを参照してください。 記事
サンプル例: Docker を使用したアプリケーションのコンテナ化
次の手順は、Docker を使用してアプリケーションをコンテナ化するためのガイドです。
C の階乗
ステップ 1: Dokcerfile と Python アプリケーションを作成する
- 2 つのファイル (Dockerfile と main.py ファイル) を含むフォルダーを作成します。
ステップ 2: Python コードを開発する
- main.py を以下のコードで編集するか、独自の Python コードの開発を試してください。
#!/usr/bin/env python3 print('Docker and GFG rock!')> ステップ 3: Dockerfile を開発する
- 以下の Dockerfile 開発手順に従って Dockerfile を編集します。
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>
ステップ 4: Docker イメージを作成する
- main.py ファイルと Dockerfile を作成および編集したら、次のコマンドを実行してアプリケーションを含むイメージを作成します。
$ sudo docker build -t python-test .>
- 「-t」オプションを使用すると、イメージの名前を定義できます。 「python-test」はイメージに選んだ名前です。
ステップ 5: Docker コンテナを実行する
- イメージが作成されると、コードを起動する準備が整います。
$ sudo docker run python-test>
アプリケーションのコンテナ化について詳しくは、これを参照してください。 記事
イメージを Docker Hub にプッシュするサンプル例
次の手順は、イメージを Dockerhub にプッシュするためのガイドです。
ステップ1: Docker Hub でアカウントを作成するか、すでにアカウントをお持ちの場合は既存のアカウントを使用します。
ステップ2: 「リポジトリの作成」ボタンをクリックし、ファイルの名前を入力して、「作成」をクリックします。
ステップ 3: 次に、イメージにタグを付けて、作成したばかりの Docker Hub リポジトリにプッシュします。
- 次に、以下のコマンドを実行して、Docker イメージを一覧表示します。
$ docker images>
- 上記ではこの結果が得られます
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
- 画像 ID は画像のタグ付けに使用されます。画像にタグを付ける構文は次のとおりです。
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>
ステップ 4: イメージを Docker Hub リポジトリにプッシュします
$ docker push afrozchakure/python-test>
dockerhub へのイメージの公開の詳細については、これを参照してください。 記事
Docker Hubからイメージを取得して実行します。
1. 特定のイメージのすべてのバージョンをローカル システムから削除するには、イメージ ID を使用します。
$ docker rmi -f af939ee31fdc>
2. ここでイメージを実行します。イメージがローカル マシンに存在しない場合は、Docker ハブからイメージを取得します。
$ docker run afrozchakure/python-test>
Docker の利点
Docker の利点の一部を次に示します。
- 携帯性: 基盤となるオペレーティング システムに関係なく、どのマシンでも実行できない軽量のポータブル コンテナを作成する Docker 機能。
- 分離: Docker はコンテナーを介して高レベルの分離を提供し、アプリケーションを互いに独立して実行できるようにして、あるコンテナーが他のコンテナーに影響を与えない問題に対処します。
- 再現性: Docker 開発者は、アプリケーションとその依存関係を再利用可能なイメージに簡単にパッケージ化できます。これにより、開発、テスト、運用環境全体で一貫性があり再現可能なビルドが可能になります。
- DevOpsの統合 :増加するワークロードに対処する際に、ソフトウェア開発ライフサイクル全体にわたるコラボレーションと自動化を促進します。
Docker の代替
Docker の代替手段は次のとおりです。
- 落ち着いた : セキュリティと互換性に重点を置いた Docker 互換コンテナ エンジンを提供し、Docker が優先されない環境や利用できない環境に最適です。
- rkt: CoreOS によって開発された軽量のコンテナ ランタイム。シンプルさ、セキュリティ、構成可能性を考慮して設計されており、Docker のコンテナ ランタイムの代替手段を提供します。
- LXC (Linux コンテナ): 単一ホスト上で複数の分離された Linux システム (コンテナー) を実行するためのオペレーティング システム レベルの仮想化を提供し、特定のユースケースに対して Docker に代わる軽量の代替手段を提供します。
- コンテナ: Docker, Inc. によって開発された業界標準のコア コンテナ ランタイム。コンテナ化されたアプリケーションを構築するための最小限で安定したプラットフォームを提供します。多くの場合、Kubernetes などのより高度なコンテナ オーケストレーション システムの Docker の下位レベルの代替として使用されます。
Docker セキュリティ
以下は、Docker セキュリティに関する洞察の一部です。
- 分離 : Docker コンテナは、アプリケーションの実行と処理を保証する強力な分離を提供します。
- 不変のインフラストラクチャ : バージョン管理された不変のイメージからコンテナが構築される、不変のインフラストラクチャの使用を促進します。
- リソースの制約: CPU やメモリの制限など、コンテナーのリソース制約を定義できます。
- セキュリティスキャン: 組み込みのセキュリティ スキャン ツールを提供し、展開前にコンテナ イメージをスキャンして既知の脆弱性やマルウェアを検出できます。
結論
これで、Docker の基本、Docker の一般的な用語に沿った仮想マシンと Docker コンテナの違いについて学びました。また、システムへの Docker のインストールも行いました。 Docker を使用してアプリケーションを作成し、イメージを Docker Hub にプッシュしました。最後に、ローカル システムから特定のイメージを削除し、ローカルにイメージが存在しない場合は後で Docker Hub からイメージをプルする方法を学びました。
Docker – よくある質問
Docker Hub とは簡単に言うと何ですか?
Docker Hub は、ユーザー/開発者が作成したシステム イメージを保存および共有できるパブリック レジストリで、他のソフトウェア開発者がイメージに簡単にアクセスして再利用できるようにします。
Docker Hubを使用するには何が必要ですか?
Docker Hub を使用するには、ユーザーは Docker Hub プラットフォームのアカウントを持っている必要があります。 Docker Hub にアカウントをお持ちでない場合は、サインアップしてアカウントを作成できます。 Docker のアカウントを取得すると、Docker Hub との間でイメージをプッシュおよびプルするなどの操作を実行できるようになります。
xdの意味
Docker ログとは何ですか?
Docker デーモンと Docker コンテナは、テキスト メッセージの形式で Docker ログを生成します。これは、問題のトラブルシューティング、アプリケーションのパフォーマンスの監視、Docker 環境の状態に関する情報の収集に役立ちます。
Docker ビルドとは何ですか?
Docker build は、Dockerfile を使用して Docker イメージをビルドするために使用されるコマンドです。
Docker Ubuntuとは何ですか?
Docker Ubuntu は、Ubuntu ベースのオペレーティング システムで Docker サービスを利用するために使用される用語です。 Docker の実行は、人気のある Linux ディストリビューション Ubuntu に最適です。