Docker フラッシュカード

カテゴリースポンサー

Dockerは、Solomon Hykesによって作成されたアプリケーションコンテナー化プラットフォームです。これは、標準化、移植性、およびアプリケーション環境の隔離を念頭に置いて設計されたツールです。Dockerはその軽量さと効率で知られ、異なる環境間でのアプリケーションとその依存関係の簡単なパッケージング、配布、および実行を可能にします。このシステムは、高度なコンテナ管理とオーケストレーション機能を提供し、開発者と管理者に効率的なデプロイメント、スケーリング、およびアプリケーション管理のためのツールを提供します。Dockerはまた、マイクロサービスアーキテクチャと継続的インテグレーションをサポートし、高いパフォーマンスを維持しながら、迅速かつ反復可能なソフトウェア開発とデプロイメントプロセスを可能にします。

当社のフラッシュカードアプリには、Dockerの知識が必要な面接に効果的に対応するための、厳選されたDocker面接問題とその詳細な回答が含まれています。IT Flashcardsは求職者のためのツールだけでなく、現在のキャリアプランに関係なく、知識を強化しテストするための優れた方法です。アプリを定期的に使用することで、最新のDockerのトレンドに常に追いつき、スキルを高いレベルで維持することができます。

アプリからのDockerフラッシュカードのサンプル

App Store または Google Play から当社のアプリをダウンロードして、さらに多くの無料のフラッシュカードを入手するか、すべてのフラッシュカードにアクセスするために購読してください。

コンテナと仮想マシンの主な違いは何ですか?

1. アーキテクチャ:
仮想マシンは完全なオペレーティングシステムを含み、そのOSが持つカーネル、アプリケーション、ライブラリがハイパーバイザー上で実行されます。ハイパーバイザーは、VMによるハードウェアリソースの共有を管理します。仮想マシンが完全なオペレーティングシステムを含むため、ディスクの使用量は大きくなります。

一方、コンテナは、動作しているオペレーティングシステムのカーネルを共有し、アプリケーションとその依存関係のみを含みます。コンテナはDockerのようなコンテナエンジンによって管理されます。コンテナは完全なオペレーティングシステムを必要としないため、より小さく、オーバーヘッドが少ないです。

2. パフォーマンス:
仮想マシンは完全なオペレーティングシステムを実行する必要があるため、オーバーヘッドが大きくなります。これは、起動時や実行中のパフォーマンスに影響を与えます。

コンテナはオーバーヘッドが少なく、軽量で起動が速く、配置も簡単です。また、環境間で簡単に移動できるため、デプロイメントが容易です。

最後に、コンテナと仮想マシンの両方がアプリケーション開発において重要であり、これらの技術はしばしばアプリケーションのアーキテクチャで一緒に使われます。ただし、別々のオペレーティングシステムが存在しないため、コンテナは仮想マシンよりも隔離性が低く、潜在的にセキュリティが低い可能性があります。

Dockerイメージとは何ですか、そしてそれはどのように使われますか?

Dockerイメージ、またはDockerイメージは、設定済みのソフトウェアを含む不変のファイルです。Dockerイメージは、イメージの作り方を指示するDockerfileに基づいて作成されます。

Dockerイメージの主な構成要素はレイヤーです。Dockerfileの指示の各行が新しいレイヤーを作ります。レイヤーは上に積み重ねられ、最終的なイメージを形成します。

DockerイメージはDockerコンテナを実行するために使用されます。コンテナは、プロセスとして実行されるイメージのインスタンスです。イメージとは対照的に、コンテナには状態があり、変更することができます。

Dockerイメージが不変であり、すべての必要な依存関係を含んでいるため、さまざまなシステムやサーバー間で簡単に転送することができます。その結果、Dockerイメージ上で実行されるアプリケーションは常に同一であり、環境に関係なく、テストやデプロイが簡単になります。

Dockerの主要な原則の1つは、「一度作成する、どこでも実行する」というもので、これは一度作成したイメージをDockerをサポートする任意のシステムで実行できることを意味します。

Dockerはコンテナイメージのレイヤーをどのように使用しますか?

Dockerは、コンテナイメージを組み立てるためのレイヤーの概念を利用します。 Dockerfileの各指示は、前のレイヤーからファイルを追加、変更、または削除する新しいレイヤーを画像に作成します。

Dockerレイヤーは読み取り専用であり、作成後には変更できません。コンテナが起動すると、Dockerはスタックレイヤーの上に書き込み可能なレイヤーを追加します。コンテナ内のすべての変更、たとえば新しいファイルの保存、既存のファイルの変更、またはファイルの削除は、この書き込み可能な層で行われます。

レイヤーシステムの利用により、Dockerは画像を効率的に共有および保存できます。イメージがプルされると、Dockerはキャッシュにまだない各レイヤーを取得します。イメージが作成され保存されると、Dockerは既に利用可能なレイヤーを再利用し、大幅にスペースを節約します。

以下のコードは、Dockerfileの各指示が新しいレイヤーを作成する方法を示しています:
# ベースイメージを使用
FROM python:3.8

# レイヤーを作る
RUN pip install flask 

# 別のレイヤーを追加します。
COPY . /app

この例では、python:3.8イメージを基本レイヤーとして使用しています。その後、Flaskパッケージをインストールし、ファイルをコピーすることでより多くのレイヤーを追加します。これらの操作の各々が新たなレイヤーを画像に追加します。

Dockerfileとは何で、何に使いますか?

Dockerfileは、Dockerイメージを構築する際に自動的に実行される指示(コマンド)が含まれたテキストファイルです。このファイルには、イメージを作成するために必要な全ての情報を順番に配置します。

Dockerfileを使ってイメージを作成したい場合は、特定のフォルダで以下のコマンドを実行する必要があります:
docker build .

この場合、ドットはビルドコンテキスト(つまり、DockerがDockerfileを探す場所)が私たちが現在いる場所(フォルダ)であることを示しています。

このソリューションの美点は、Dockerfileでイメージを定義した後、Dockerがインストールされているどのサーバ上でも完全に再作成することができることです。ホストの設定に関係なく、私たちの開発環境と製品環境の再現性を保証します。

以下はDockerfileの内容の一例です:
#使用する基本イメージ
FROM python:3

#コンテナ内の作業ディレクトリを設定
WORKDIR /usr/src/app

#必要なファイルをコピーして依存関係をインストール
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

# コードの残りをWORKDIRにコピー
COPY . .

# アプリケーションが実行されるポートを公開
EXPOSE 8080

# コンテナ起動時に実行されるコマンド
CMD [ "python", "./app.py" ]


アプリケーションは現在localhost:8080で利用可能であるべきです。

ダウンロード ITフラッシュカード 今すぐ

当社のフラッシュカードでDockerの知識を広げよう。
プログラミングの基礎から高度な技術の習得まで、ITフラッシュカードはITの卓越性へのパスポートです。
今すぐダウンロードして、今日の競争力のある技術世界での可能性を発見しましょう。