ホームページ  >  記事  >  運用・保守  >  Docker Compose と Dockerfile の違いについて話しましょう

Docker Compose と Dockerfile の違いについて話しましょう

藏色散人
藏色散人転載
2023-03-02 16:48:324745ブラウズ

この記事は、Docker に関する関連知識を提供します。主に、Docker Compose と Dockerfile とは何か、およびそれらの違いは何であるかを紹介します。興味のある友人は参照してください。皆さんが協力してくれることを願っています。

1. Docker Compose と Dockerfile の違い

Docker Compose と Dockerfile はどちらも Docker コンテナを構築および管理するためのツールですが、機能と用途が異なります。 。

  • Dockerfile は、Docker イメージの構築ルールを定義するために使用されるテキスト ファイルです。これには、コンテナーの実行時にオペレーティング システム、ソフトウェア環境、アプリケーション、ファイル コピー、その他の情報を指定するための一連の手順が含まれています。 Dockerfile を使用すると、カスタマイズされた Docker イメージを構築して、Docker をサポートする任意のホストでイメージを実行できます。

  • Docker Compose は、複数の Docker コンテナーを定義して実行するためのツールです。 Docker Compose を使用すると、YAML ファイルを使用してアプリケーションのサービス、ネットワーク、ストレージ、その他のリソースを記述し、単一のコマンドを使用してアプリケーション全体を開始、停止、再起動、管理できます。 Docker Compose 構成ファイルでは、複数の Docker コンテナーを定義でき、各コンテナーはカスタマイズされた Docker イメージを使用でき、コンテナー間の依存関係と通信方法を指定できます。

したがって、Dockerfile は Docker イメージの作成とカスタマイズによく使用され、Docker Compose は複数の Docker コンテナを管理して、それらが連携して完全なアプリを構築できるようにするためによく使用されます。

2. 例

CentOS 7 システム上で PHP Web アプリケーションを実行し、Web サーバーとして Nginx を使用するとします。満たすため。

Dockerfile を使用すると、カスタム PHP Nginx イメージを作成できます。例:

FROM php:7.4-fpm
RUN apt-get update && apt-get install -y nginx
COPY nginx.conf /etc/nginx/nginx.conf
WORKDIR /var/www/html
COPY src/ /var/www/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

この Dockerfile は、公式 PHP 7.4-fpm イメージに基づいており、Nginx がインストールされ、アプリケーション コードがコピーされています。コンテナの /var/www/html ディレクトリ内。また、このイメージはコンテナーのポート 80 をホストにマップし、ブラウザーを介してホストからアプリケーションにアクセスできるようにします。

Docker Compose を使用すると、PHP と Nginx の 2 つのコンテナを同時に起動し、同じ Docker ネットワークに接続するための YAML ファイルを定義できます。例:

`version: '3'
services:
  php:
    image: php:7.4-fpm
    volumes:
      - ./src:/var/www/html
    networks:
      - my-network
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    networks:
      - my-network
networks:
  my-network:`

この Docker Compose ファイルは 2 つのサービスを定義します。1 つは公式の PHP 7.4-fpm イメージに基づいており、もう 1 つは公式の Nginx イメージに基づいています。どちらもローカル アプリケーション コードと Nginx 構成ファイルをマウントし、my-network と呼ばれる Docker ネットワークに接続します。さらに、Nginx コンテナのポート 80 もホストのポート 80 にマッピングされます。

一般に、単一のイメージの作成とカスタマイズには Dockerfile が適しており、複数のコンテナを管理し、それらを組み合わせて完全なアプリケーションを構築するには Docker Compose の方が適しています。この例では、Dockerfile を使用してカスタム PHP Nginx イメージを作成し、Docker Compose を使用して PHP コンテナーと Nginx コンテナーの両方を同時に起動し、それらを同じ Docker ネットワークに接続できます。

推奨される学習: docker ビデオ チュートリアル docker 使用法チュートリアル

以上がDocker Compose と Dockerfile の違いについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。