ホームページ >運用・保守 >Docker >Docker コンテナーについて教えること

Docker コンテナーについて教えること

王林
王林オリジナル
2023-05-13 12:24:37672ブラウズ

Docker コンテナ チュートリアル: 入門から習得まで

Docker は、アプリケーションとその依存関係をコンテナにパッケージ化できるオープン ソースのコンテナ化プラットフォームであり、ローカルのどこにでもデプロイできるように一貫した開発およびランタイム環境を提供します。走る。 Docker のコンテナ化テクノロジは、DevOps およびクラウド コンピューティングの分野で広く使用されており、現在最も人気のあるコンテナ化ツールの 1 つでもあります。

このチュートリアルでは、Docker コンテナの基本から始めて、Docker コンテナの主要な側面に習熟するまで徐々に深めていきます。

1. Docker コンテナの基礎知識

  1. Docker コンテナの概要

Docker には、イメージとコンテナという 2 つの中心的な概念があります。イメージは、アプリケーションとその依存関係を含む軽量の読み取り専用テンプレートです。コンテナーはイメージに基づいて作成された実行中のインスタンスであり、通常はアプリケーションやテスト環境を実行するために使用されます。

次のコマンドを使用して Docker でコンテナを実行します。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

このうち、OPTIONS はコンテナのオプションを表し、IMAGE はコンテナのベースとなるイメージを表し、COMMAND と ARG はコンテナのオプションを表します。コンテナによって実行されるコマンドとパラメータ。

たとえば、次のコマンドは Docker 内の Ubuntu イメージに基づいてコンテナーを実行し、/bin/bash コマンドを実行します:

docker run -it ubuntu /bin/bash
  1. Docker コンテナーのステータスの表示

Docker コンテナのステータスを表示するには、次のコマンドを使用してください:

docker ps [OPTIONS]

OPTIONS はコンテナ リストのオプションを表します。使用できるオプションは次のとおりです:

  • -a: 停止したコンテナを含むすべてのコンテナを表示します。
  • -q: コンテナ ID のみを表示します。
  • -l: 最新のコンテナを表示します。
  • -n: 最近作成された n 個のコンテナを表示します。

たとえば、次のコマンドは実行中の Docker コンテナを一覧表示します:

docker ps
  1. Docker コンテナにパッケージをインストール

Dockerfile ファイルを使用できます。 Docker コンテナ環境にインストールする必要があるソフトウェア パッケージを定義します。 Dockerfile は、Docker イメージの構築に使用される複数のコマンドとパラメーターを含むテキスト ファイルです。 Dockerfile のサンプル コンテンツは次のとおりです。

FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx

上記の Dockerfile は、Ubuntu Linux ディストリビューションに基づいたイメージを定義し、apt-get コマンドを使用して nginx パッケージをインストールします。次に、次のコマンドを使用してイメージを構築します:

docker build -t my-nginx-image .

ここで、my-nginx-image はイメージの名前で、「.」は Dockerfile が配置されているディレクトリの現在のディレクトリを表します。 。

2. Docker コンテナの高度なアプリケーション

  1. Docker コンテナの拡張

Docker コンテナは、より高い負荷に合わせて必要に応じて拡張できます。次のコマンドを使用して、複数のコンテナを作成できます。

docker-compose up -d

このうち -d オプションは、コンテナをバックグラウンド プロセスとして実行することを意味します。

  1. Docker コンテナに入る

ファイルの確認、コマンドの実行など、Docker コンテナ内でいくつかの操作を実行する必要がある場合があります。次のコマンドを使用して、実行中の Docker コンテナーに入ることができます:

docker exec -it [CONTAINER ID] /bin/bash

ここで、CONTAINER ID はコンテナーの ID を表します。例:

docker exec -it bb0cd62f8cac /bin/bash
  1. Docker コンテナを使用した開発

Docker コンテナを使用して開発することで、開発環境の一貫性と信頼性を実現できます。次のコマンドを使用してコンテナを起動し、現在のディレクトリをボリュームとしてコンテナにマウントできます:

docker run --rm -it -v $(pwd):/app node:latest /bin/bash

このうち -rm オプションは、コンテナの実行終了後にコンテナが自動的に削除されることを意味します。 。 -v オプションは、ホスト上の現在のディレクトリ ($(pwd)) を Docker コンテナ内の /app ディレクトリにマウントすることを意味します。 node:latest は Docker イメージで、/bin/bash コマンドを実行します。

  1. Docker コンテナのセキュリティ

Docker コンテナは、より優れた運用セキュリティを提供しながら、悪意のある攻撃からアプリケーションとシステムを保護できます。 Docker コンテナを保護するためのいくつかの提案を次に示します。

  • 最新の Docker イメージを使用する必要があります。
  • コンテナは最小限のユーザー権限で実行する必要があります。
  • コンテナは複雑なパスワードで保護する必要があります。
  • 脆弱性攻撃を防ぐために、コンテナーとイメージを定期的に更新する必要があります。

3. Docker コンテナの高度なアプリケーション

  1. コンテナ オーケストレーションに Docker Compose を使用する

Docker Compose は、Docker のオーケストレーション ツールです。複数のコンテナを管理します。 Docker Compose ファイルは、次のコマンドを使用して定義できます。

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

ここで、バージョン 3 は Docker Compose ファイル形式のバージョンです。サービスは、Web や Redis など、管理する必要があるサービスを定義します。このうち、web はビルド定義を使用して現在のディレクトリをビルド コンテキストとして使用し、redis は image を使用して Docker Hub から Redis イメージを取得します。

  1. Kubernetes での Docker コンテナの実行

Kubernetes は、Docker コンテナを自動的に管理する人気のあるコンテナ オーケストレーション システムです。以下は、Kubernetes を使用したコンテナ オーケストレーションの例です。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-container
          image: my-image:latest
          ports:
            - containerPort: 8080

この Kubernetes マニフェスト ファイルは、「my-deployment」という名前のデプロイメントを定義し、3 つのレプリカを実行します。また、「my-container」という名前のコンテナを定義し、my-image:latest イメージを使用し、ポート 8080 でサービスを公開します。

結論

Docker コンテナ テクノロジーは、DevOps およびクラウド コンピューティングの分野に強力なツールを提供し、開発および運用中の一貫性と信頼性を提供します。このチュートリアルでは、Docker コンテナーの基本、高度なアプリケーション、および高度なアプリケーションを詳しく説明し、実践的な例を提供して、この重要なテクノロジーを理解して使用するのに役立つことを願っています。

以上がDocker コンテナーについて教えることの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。