この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 9930|答える: 2

dockerfileとdocker-composeの違い

[リンクをコピー]
掲載地 2019/11/15 9:33:13 | | |
dockerfileとdocker-composeの違い
Dockerの利用プロセスを簡単に理解しましょう。これはイメージ構築とコンテナ起動に分かれています。

イメージ構築:インストールや運用に必要な環境、プログラムコードなどを含むイメージを作成することです。 この作成プロセスはdockerfileを使って行われます。

コンテナ起動:最終的に、ビルドされたイメージを取得し、ポートマッピング、外部データマウント、環境変数などの一連の実行命令を経てサービスを起動します。 単一のコンテナであれば、docker runで実行できます。

複数のコンテナを動かす(例えばサービスオーケストレーション)場合はdocker-composeで実装でき、複数のコンテナをサービスとして簡単に実行でき(もちろんそのうち1つだけ)、スケール機能(サービススケーリング)を提供します。

簡単な概要:

1.dockerfile: build the image;

2. docker実行:コンテナを起動;

3. docker-compose: サービスを開始;

最初から話し始めましょう。
Dockerを使わなければ、WordPressはどうやって作っていますか? まずサーバーを見つけて、そのOSがUbuntuだと仮定し、ドキュメントに従って手順を踏んでコマンドを入力し、設定を書く、ということですよね?
Dockerを使うのはどうですか? サーバーを見つけてください。どのOSでも、Dockerに対応していて、DockerがUbuntuを実行し、Dockerが公式ソースから最新のUbuntuイメージを取得してくれます。Ubuntu仮想マシンを開くようなイメージで、ステップごとにインストールすればいいです。上記と同じように。

しかし、この設置には大きな欠点があります。コンテナを削除すると、作業が行われなくなります。 もちろん、dockerコミットを使ってイメージとして保存し、再利用することも可能です。

しかし画像は一般的に大きく、画像だけを共有すると他の人は何が含まれているか分からず、共有や再利用には適していません。
直感的な解決策としては、インストールプロセス全体を記録するスクリプトを書くことで、再度インストールした際にスクリプトを実行できるようにすることです。 Dockerfileは、画像作成の過程を記録するスクリプトの一つです。
Dockerfileの場合はdockerビルドを実行するだけです。 画像を作成でき、Dockerfileはテキストファイルなので、とても簡単に修正できます。

WordPressイメージができたので、docker runを使うだけでWordPressを立ち上げることができます。

WordPressだけで十分です。 しかし多くの場合、nginx、mysql、Mail Serviceなど、複数のイメージがサービスを開始する必要があります。
より一般的には、nginx、mysql、smtpはすべてイメージであり、これらのイメージが連携してプロジェクトに役立てます。
docker-composeがこの問題の解決策です。 プロジェクトに必要な画像、各画像の設定方法、マウントするボリュームなどに関する情報がdocker-compose.ymlに含まれています。
サービスを開始するにはdocker-compose upだけで済み、停止するにはdocker-compse stop/downで済みます

簡単に言えば、Dockerfileは単一の画像の構築過程を記録し、プロジェクト(通常は複数の画像)の構築過程docker-compse.yml記録します。

一部のチュートリアルではdockerfile+docker-composeを使うとおっしゃいましたが、docker-compose.yml自体に画像ビルドの情報がなく、画像をdockerレジストリから取得すればdockerファイルは不要になると言いました。 画像を構築する必要がある場合は、Dockerファイルを提供する必要があります。

docker-composeこれはオーケストレーションコンテナです。 例えば、phpイメージ、mysqlイメージ、nginxイメージがあります。 もしdocker-composeがなければ、起動するたびに各コンテナの起動パラメータ、環境変数、コンテナ名、異なるコンテナのリンクパラメータを指定する必要があり、かなり面倒です。 docker-composerを使えば、これらのコマンドを一度にファイルdocker-composer.ymlに書き込め、環境全体(3つのコンテナを含む)を起動するたびにdocker-composerのアップコマンドを入力するだけで済みます。

dockerfile役割はゼロから鏡像を作ることです。 インストールや運用に必要な環境、プログラムコードなどが含まれています。 この作成プロセスはdockerfileを使って行われます。 Dockerfile - dockerビルドコマンドでスタンドアロンイメージを作成するために準備されたもので、ライブビルド用のdocker-composeでも使用可能です
docker-compose.yml - 複数のコンテナを同時に管理できるdocker-compose用のスクリプトで、それらの間の関係性、公式イメージで構築するか自分で構築するか、さまざまなネットワークポート定義、ストレージ空間の定義なども含めます




先の:サイト「SITE NAME」のURL「http://xx/」の登録に失敗しました...
次に:Dockerはイメージの位置をWindowsシステム上で保存します
 地主| 掲載地 2022/12/18 14:56:50 |
centosインストールDocker Composeチュートリアル
https://www.itsvse.com/thread-5164-1-1.html
 地主| 掲載地 2025/03/05 10:37:33 |
BuildKitは、従来のビルダーを置き換える改良されたバックエンドです。 バージョン23.0以降、BuildKitはDocker DesktopおよびDocker Engineのユーザー向けのデフォルトのビルダーです。

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com