WordPress環境のセットアップの複雑さに巻き込まれたことがあるのは、あなただけではありません。 WordPressは、全ウェブサイトの40%以上を占めており、世界で最も人気のあるコンテンツ管理システム(CMS)となっています。その汎用性は比類のないものですが、MAMP、WAMP、XAMPP などの従来のローカル開発セットアップでは、不整合や悪名高い「自分のマシンで動作する」問題を引き起こす可能性があります。
プロジェクトが拡大し、チームが成長するにつれて、一貫性があり、スケーラブルで効率的な開発環境の必要性が重要になります。 そこで Docker の出番となり、WordPressサイトの開発とデプロイの方法に革命をもたらしました。 さらにスムーズにするために、TLS証明書を自動的に取得する最新のリバースプロキシである Traefikを統合し、サイトがHTTPS上で安全に実行されるようにします。 Traefik は、 Docker Hub から Docker 公式イメージ として入手できます。
この包括的なガイドでは、実際の例を使用してWordPressサイトをDocker化する方法を示します。 Dockerfile の作成、既存の WordPress インスタンスのコンテナ化 (データの移行を含む)、Traefik の自動 TLS 証明書の設定について詳しく説明します。新しく始める場合でも、既存のサイトを移行する場合でも、このチュートリアルで対応できます。
さっそく見ていきましょう!
なぜWordPressサイトをコンテナ化する必要があるのですか?
WordPressサイトをコンテナ化すると、開発ワークフローとサイト全体のパフォーマンスを大幅に向上させることができる多くのメリットがあります。
ページの読み込み速度の向上
Docker コンテナは軽量で効率的です。 アプリケーションとその依存関係をコンテナにパッケージ化することで、オーバーヘッドを削減し、リソースの使用を最適化できます。 これにより、ページの読み込み時間が短縮され、ユーザーエクスペリエンスとSEOランキングが向上します。
効率的なコラボレーションとバージョン管理
Docker では、環境全体がコードとして定義されます。 これにより、すべてのチームメンバーが同じセットアップで作業するようになり、環境関連の不一致がなくなります。 Git のようなバージョン管理システムは、Dockerfile と wordpress-traefik-letsencrypt-compose.yml
への変更を追跡できるため、コラボレーションがシームレスになります。
簡単なスケーラビリティ
WordPressサイトを拡張してトラフィックの増加を処理するのは、DockerとTraefikを使用すると簡単になります。 アプリケーションの複数のDockerコンテナをスピンアップでき、TraefikはTLS証明書を自動的に処理しながら、負荷分散とルーティングを管理します。
簡素化された環境設定
開発環境のセットアップは、いくつかの Docker コマンドを実行するのと同じくらい簡単になります。 手動でのインストールや設定はもう必要ありません - アプリケーションが必要とするすべてのものは、Docker設定ファイルで定義されています。
更新とメンテナンスの簡素化
WordPressまたはその依存関係の更新は簡単です。 Docker イメージを更新し、コンテナを再構築すれば、準備完了です。 Traefik は、ルートと証明書が動的に管理されることを保証し、メンテナンスのオーバーヘッドを削減します。
WordPress、Docker、Traefik の使用を開始する
始める前に、DockerとTraefikとは何か、そしてそれらがWordPress開発ワークフローにどのように革命をもたらすかについて簡単に説明しましょう。
- Docker は、開発者がコンテナでアプリケーションを構築、共有、テスト、実行できるようにすることで、ソフトウェア開発ライフサイクル全体を簡素化するクラウドネイティブ開発プラットフォームです。 開発者のエクスペリエンスを効率化すると同時に、組み込みのセキュリティ、コラボレーション ツール、スケーラブルなソリューションを提供して、チーム全体の生産性を向上させます。
- Traefik は、マイクロサービス用に設計された最新のリバース プロキシおよびロード バランサーです。 Docker とシームレスに統合され、 Let's Encrypt から TLS 証明書を自動的に取得および更新できます。
これにはどのくらいの時間がかかりますか?
この環境のセットアップには、特にTraefikを自動TLS証明書に統合し、既存のWordPressサイトを移行する場合は、約 45〜60 分かかる場合があります。
ドキュメントのリンク
必要なツール
- Docker Desktop: 最新バージョンをまだインストールしていない場合は、Docker Desktop をダウンロードしてインストールします。
- ドメイン名: Traefik が Let's Encrypt から TLS 証明書を取得するために必要です。
- DNS設定へのアクセス:ドメインをサーバーのIPアドレスにポイントします。
- コードエディタ:設定ファイルの編集に適したコードエディタです。
- コマンドラインインターフェイス(CLI):ターミナルまたはコマンドプロンプトへのアクセス。
- 既存のWordPressデータ:既存のサイトをコンテナ化している場合は、WordPressファイルとMySQLデータベースのバックアップがあることを確認してください。
WordPress Docker Bitnamiイメージとは?
プロセスを簡素化するために、WordPress 用の安全で最適化された環境が事前にパッケージ化されている Docker Hub の Bitnami WordPress イメージ を使用します。 これにより、構成時間が短縮され、最新のセキュリティパッチでセットアップが最新の状態に保たれます。
Bitnami WordPressイメージを使用すると、次の方法でセットアッププロセスが合理化されます。
- 構成の簡素化: Bitnami イメージには、すぐに使用できる適切な既定値と構成が付属しているため、セットアップに費やす時間が短縮されます。
- セキュリティの強化: イメージは定期的に更新され、最新のセキュリティパッチが含まれているため、脆弱性が最小限に抑えられます。
- 一貫性の確保: 標準化された環境を使用すると、「自分のマシンで動作する」という問題を回避し、開発、ステージング、運用全体で一貫性を確保できます。
- 追加のツールを含める: Bitnami には、多くの場合、バックアップ、復元、およびその他のメンテナンス タスクに役立つツールとスクリプトが含まれています。
Bitnami WordPressイメージを選択することで、テスト済みで最適化された環境を活用でき、構成エラーのリスクを減らし、Webサイトの開発により集中できます。
Bitnami WordPress Dockerイメージの主な機能:
- 本番環境向けに最適化: パフォーマンスとセキュリティを念頭に置いて構成されています。
- 定期的な更新:最新のWordPressバージョンと依存関係を含むように維持されます。
- 使いやすさ: デプロイや、データベースやリバースプロキシなどの他のサービスとの統合が容易になるように設計されています。
- 包括的なドキュメント: すぐに開始するためのガイドとサポートを提供します。
例でBitnamiを使用する理由:
Docker Compose の設定では、次のように指定しました。
WORDPRESS_IMAGE_TAG=bitnami/wordpress:6.3.1
これは、Bitnami WordPress イメージ、バージョン 6を使用していることを示しています。3。1。 Bitnamiイメージは、特にTraefikと統合して自動TLS証明書を取得する場合に、安全で効率的、かつ管理しやすいWordPress環境という当社の目標とよく一致しています。
Bitnami WordPress Dockerイメージを活用することで、WordPressプロジェクトの堅牢で信頼性の高い基盤を選択できます。 このアプローチにより、基盤となるインフラストラクチャを気にすることなく、優れたWebサイトの構築に集中できます。
Traefikを使用して既存のWordPressサイトをDocker化する方法
WordPressサイトのドッカー化について、.env
などの実用的な例を使って見ていきましょう および wordpress-traefik-letsencrypt-compose.yml
構成。 また、既存のデータをDockerコンテナに組み込む方法についても説明します。
ステップ 1: 環境変数の準備
まず、.env
を作成します wordpress-traefik-letsencrypt-compose.yml
ファイルと同じディレクトリにあるファイル。このファイルには、すべての環境変数が格納されます。
例 .env
ファイル:
# Traefik Variables
TRAEFIK_IMAGE_TAG=traefik:2.9
TRAEFIK_LOG_LEVEL=WARN
[email protected]
TRAEFIK_HOSTNAME=traefik.yourdomain.com
# Basic Authentication for Traefik Dashboard
# Username: traefikadmin
# Passwords must be encoded using BCrypt https://hostingcanada.org/htpasswd-generator/
TRAEFIK_BASIC_AUTH=traefikadmin:$$2y$$10$$EXAMPLEENCRYPTEDPASSWORD
# WordPress Variables
WORDPRESS_MARIADB_IMAGE_TAG=mariadb:11.4
WORDPRESS_IMAGE_TAG=bitnami/wordpress:6.6.2
WORDPRESS_DB_NAME=wordpressdb
WORDPRESS_DB_USER=wordpressdbuser
WORDPRESS_DB_PASSWORD=your-db-password
WORDPRESS_DB_ADMIN_PASSWORD=your-db-admin-password
WORDPRESS_TABLE_PREFIX=wpapp_
WORDPRESS_BLOG_NAME=Your Blog Name
WORDPRESS_ADMIN_NAME=AdminFirstName
WORDPRESS_ADMIN_LASTNAME=AdminLastName
WORDPRESS_ADMIN_USERNAME=admin
WORDPRESS_ADMIN_PASSWORD=your-admin-password
[email protected]
WORDPRESS_HOSTNAME=wordpress.yourdomain.com
WORDPRESS_SMTP_ADDRESS=smtp.your-email-provider.com
WORDPRESS_SMTP_PORT=587
WORDPRESS_SMTP_USER_NAME=your-smtp-username
WORDPRESS_SMTP_PASSWORD=your-smtp-password
筆記:
- プレースホルダーの値 (
[email protected]
、your-db-password
など) を実際の資格情報に置き換えます。 - このファイルに機密情報が含まれている場合は、バージョン管理にコミットしないでください。
- パスワード暗号化ツールを使用して、
TRAEFIK_BASIC_AUTH
の暗号化されたパスワードを生成します。 たとえば、 htpasswd ジェネレータを使用できます。
ステップ 2:DockerComposeファイルの作成
サービス、ネットワーク、およびボリュームを定義する wordpress-traefik-letsencrypt-compose.yml
ファイルを作成します。 このYAMLファイルは、Dockerを使用してWordPressインストールを構成するために重要です。
例wordpress-traefik-letsencrypt-compose.yml
.
networks:
wordpress-network:
external: true
traefik-network:
external: true
volumes:
mariadb-data:
wordpress-data:
traefik-certificates:
services:
mariadb:
image: ${WORDPRESS_MARIADB_IMAGE_TAG}
volumes:
- mariadb-data:/var/lib/mysql
environment:
MARIADB_DATABASE: ${WORDPRESS_DB_NAME}
MARIADB_USER: ${WORDPRESS_DB_USER}
MARIADB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
MARIADB_ROOT_PASSWORD: ${WORDPRESS_DB_ADMIN_PASSWORD}
networks:
- wordpress-network
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 3
start_period: 60s
restart: unless-stopped
wordpress:
image: ${WORDPRESS_IMAGE_TAG}
volumes:
- wordpress-data:/bitnami/wordpress
environment:
WORDPRESS_DATABASE_HOST: mariadb
WORDPRESS_DATABASE_PORT_NUMBER: 3306
WORDPRESS_DATABASE_NAME: ${WORDPRESS_DB_NAME}
WORDPRESS_DATABASE_USER: ${WORDPRESS_DB_USER}
WORDPRESS_DATABASE_PASSWORD: ${WORDPRESS_DB_PASSWORD}
WORDPRESS_TABLE_PREFIX: ${WORDPRESS_TABLE_PREFIX}
WORDPRESS_BLOG_NAME: ${WORDPRESS_BLOG_NAME}
WORDPRESS_FIRST_NAME: ${WORDPRESS_ADMIN_NAME}
WORDPRESS_LAST_NAME: ${WORDPRESS_ADMIN_LASTNAME}
WORDPRESS_USERNAME: ${WORDPRESS_ADMIN_USERNAME}
WORDPRESS_PASSWORD: ${WORDPRESS_ADMIN_PASSWORD}
WORDPRESS_EMAIL: ${WORDPRESS_ADMIN_EMAIL}
WORDPRESS_SMTP_HOST: ${WORDPRESS_SMTP_ADDRESS}
WORDPRESS_SMTP_PORT: ${WORDPRESS_SMTP_PORT}
WORDPRESS_SMTP_USER: ${WORDPRESS_SMTP_USER_NAME}
WORDPRESS_SMTP_PASSWORD: ${WORDPRESS_SMTP_PASSWORD}
networks:
- wordpress-network
- traefik-network
healthcheck:
test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/8080' || exit 1
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
labels:
- "traefik.enable=true"
- "traefik.http.routers.wordpress.rule=Host(`${WORDPRESS_HOSTNAME}`)"
- "traefik.http.routers.wordpress.service=wordpress"
- "traefik.http.routers.wordpress.entrypoints=websecure"
- "traefik.http.services.wordpress.loadbalancer.server.port=8080"
- "traefik.http.routers.wordpress.tls=true"
- "traefik.http.routers.wordpress.tls.certresolver=letsencrypt"
- "traefik.http.services.wordpress.loadbalancer.passhostheader=true"
- "traefik.http.routers.wordpress.middlewares=compresstraefik"
- "traefik.http.middlewares.compresstraefik.compress=true"
- "traefik.docker.network=traefik-network"
restart: unless-stopped
depends_on:
mariadb:
condition: service_healthy
traefik:
condition: service_healthy
traefik:
image: ${TRAEFIK_IMAGE_TAG}
command:
- "--log.level=${TRAEFIK_LOG_LEVEL}"
- "--accesslog=true"
- "--api.dashboard=true"
- "--api.insecure=true"
- "--ping=true"
- "--ping.entrypoint=ping"
- "--entryPoints.ping.address=:8082"
- "--entryPoints.web.address=:80"
- "--entryPoints.websecure.address=:443"
- "--providers.docker=true"
- "--providers.docker.endpoint=unix:///var/run/docker.sock"
- "--providers.docker.exposedByDefault=false"
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
- "--certificatesresolvers.letsencrypt.acme.email=${TRAEFIK_ACME_EMAIL}"
- "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme/acme.json"
- "--metrics.prometheus=true"
- "--metrics.prometheus.buckets=0.1,0.3,1.2,5.0"
- "--global.checkNewVersion=true"
- "--global.sendAnonymousUsage=false"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- traefik-certificates:/etc/traefik/acme
networks:
- traefik-network
ports:
- "80:80"
- "443:443"
healthcheck:
test: ["CMD", "wget", "http://localhost:8082/ping","--spider"]
interval: 10s
timeout: 5s
retries: 3
start_period: 5s
labels:
- "traefik.enable=true"
- "traefik.http.routers.dashboard.rule=Host(`${TRAEFIK_HOSTNAME}`)"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.services.dashboard.loadbalancer.server.port=8080"
- "traefik.http.routers.dashboard.tls=true"
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
- "traefik.http.services.dashboard.loadbalancer.passhostheader=true"
- "traefik.http.routers.dashboard.middlewares=authtraefik"
- "traefik.http.middlewares.authtraefik.basicauth.users=${TRAEFIK_BASIC_AUTH}"
- "traefik.http.routers.http-catchall.rule=HostRegexp(`{host:.+}`)"
- "traefik.http.routers.http-catchall.entrypoints=web"
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
restart: unless-stopped
筆記:
- ネットワーク: 外部ネットワーク(
wordpress-network
とtraefik-network
)を使用しています。 これらのネットワークは、デプロイする前に作成します。 - ボリューム: ボリュームは、データの永続性のために定義されます。
- サービス:
mariadb
、wordpress
、traefik
の各サービスを必要な構成で定義しました。 - ヘルスチェック: 依存サービスを開始する前に、サービスが正常であることを確認してください。
- ラベル: Traefik ルーティング、HTTPS 設定を構成し、基本認証でダッシュボードを有効にします。
ステップ 3:外部ネットワークの作成
Docker Compose 構成をデプロイする前に、 wordpress-traefik-letsencrypt-compose.yml
で指定されている外部ネットワークを作成する必要があります。
次のコマンドを実行して、ネットワークを作成します。
docker network create traefik-network
docker network create wordpress-network
ステップ 4:WordPressサイトをデプロイする
次のコマンドで Docker Compose を使用して WordPress サイトをデプロイします (図 1)。
docker compose -f wordpress-traefik-letsencrypt-compose.yml -p website up -d
説明:
-f wordpress-traefik-letsencrypt-compose.yml
: 使用する Docker Compose ファイルを指定します。-p website
: プロジェクト名をwebsite
に設定します。up -d
: コンテナをデタッチモードでビルド、(再) 作成、および開始します。
ステップ 5: デプロイの確認
すべてのサービスが実行されていることを確認します(図 2)。
docker ps
mariadb
、wordpress
、およびtraefik
サービスが稼働していることがわかります。
ステップ 6:WordPressサイトとTraefikダッシュボードへのアクセス
WordPressサイト: ブラウザで https://wordpress.yourdomain.com
に移動します。 .env
で前に設定したユーザー名とパスワードを入力します ファイルを開き、[ ログイン ]ボタンをクリックします。 WordPressサイトがHTTPS経由で実行されており、Traefikによって有効なTLS証明書が自動的に取得されていることがわかります(図 3)。
大事な: 暗号化証明書を取得するには、Traefik がインストールされているサーバーの IP アドレスを指す A タイプのレコードを外部 DNS ゾーンに設定する必要があります。 これらのレコードを設定したばかりの場合は、これらの変更がDNSサーバーに完全に広がるまでに数分から 48 時間、場合によってはそれ以上かかる場合があるため、サービスのインストールを開始する前に少し待ってください。
- Traefikダッシュボード:
https://traefik.yourdomain.com
でTraefikダッシュボードにアクセスします。 認証を求められます。.env
に記載されているユーザー名とパスワードを使用してください ファイル(図 4)。
ステップ 7:既存のWordPressデータを組み込む
既存のWordPressサイトを移行する場合は、既存のファイルとデータベースをDockerコンテナに組み込む必要があります。
ステップ 7。1: WordPressファイルの復元
既存のWordPressファイルを wordpress-data
ボリュームにコピーします。
オプション 1: Docker ボリュームマッピングの使用
wordpress-traefik-letsencrypt-compose.yml
を変更して、ローカルのWordPressファイルを直接マッピングします。
volumes:
- ./your-wordpress-files:/bitnami/wordpress
オプション 2: 実行中のコンテナにファイルをコピーする
WordPressのバックアップが ./wordpress-backup
中であると仮定すると、 走る:
docker cp ./wordpress-backup/. wordpress_wordpress_1:/bitnami/wordpress/
ステップ 7。2: データベースのインポート
既存のWordPressデータベースを mysqldump
または phpMyAdmin
を使用してエクスポートします。
例:
mysqldump -u your_db_user -p your_db_name > wordpress_db_backup.sql
データベースのバックアップをMariaDBコンテナにコピーします。
docker cp wordpress_db_backup.sql wordpress_mariadb_1:/wordpress_db_backup.sql
MariaDBコンテナにアクセスします。
docker exec -it wordpress_mariadb_1 bash
データベースをインポートします。
mysql -u root -p${WORDPRESS_DB_ADMIN_PASSWORD} ${WORDPRESS_DB_NAME} < wordpress_db_backup.sql
ステップ 7。3: 更新wp-config.php(必要な場合)
環境変数を使用しているため、WordPressは自動的にデータベースに接続する必要があります。 ただし、カスタム構成がある場合は、それらが.env
の設定と一致していることを確認してください ファイル。
手記: Bitnami WordPressイメージは、環境変数に基づいて wp-config.php
を自動的に管理します。 さらにカスタマイズする必要がある場合は、カスタム Dockerfile を作成できます。
ステップ 8: カスタム Dockerfile の作成 (オプション)
追加のPHP拡張機能のインストールや構成ファイルの変更など、WordPressイメージをさらにカスタマイズする必要がある場合は、プロジェクトディレクトリにDockerfileを作成します。
Dockerfile の例:
# Use the Bitnami WordPress image as the base
FROM bitnami/wordpress:6.3.1
# Install additional PHP extensions if needed
# RUN install_packages php7.4-zip php7.4-mbstring
# Copy custom wp-content (if not using volume mapping)
# COPY ./wp-content /bitnami/wordpress/wp-content
# Set working directory
WORKDIR /bitnami/wordpress
# Expose port 8080
EXPOSE 8080
カスタムイメージをビルドします。
Dockerfile からビルドするように wordpress-traefik-letsencrypt-compose.yml
を変更します。
wordpress:
build: .
# Rest of the configuration
次に、コンテナを再構築します。
docker compose -p wordpress up -d --build
ステップ 9:Docker内でWordPressをカスタマイズする
テーマとプラグインの追加
wordpress-data
ボリュームをマッピングしているため、WordPress コンテナ内で行った変更 (プラグインやテーマのインストールなど) は、コンテナの再起動後も保持されます。
- WordPress管理ダッシュボード経由:WordPress管理インターフェイスを介して通常行うのと同じように、テーマとプラグインをインストールします(図 5)。
- 手動: コンテナにアクセスし、テーマまたはプラグインを直接配置します。
例:
docker exec -it wordpress_wordpress_1 bash
cd /bitnami/wordpress/wp-content/themes
# Add your theme files here
DockerとTraefikを使用したWordPressの管理とスケーリング
WordPressサービスのスケーリング
トラフィックの増加を処理するには、WordPress インスタンスをスケーリングすることをお勧めします。
docker compose -p wordpress up -d --scale wordpress=3
Traefik は新しいインスタンスを自動的に検出し、それらの間でトラフィックを負荷分散します。
手記: WordPress の設定がスケーリングをサポートしていることを確認します。 セッション・ストレージを外部化したり、メディアのアップロードに共有ファイル・システムを使用したりすることが必要な場合があります。
サービスの更新
サービスを最新のイメージに更新するには:
最新の画像をプルします。
docker compose -p wordpress pull
コンテナを再作成します。
docker compose -p wordpress up -d
監視とログ
Docker ログ:
特定のサービスのログを表示します。
docker compose -p wordpress logs -f wordpress
Traefikダッシュボード:
Traefik ダッシュボードを使用して、ルーティング、サービス、およびヘルスチェックを監視します。
WordPress Docker設定の最適化
Redis を使用したキャッシングの実装
パフォーマンスを向上させるために、オブジェクトキャッシングにRedisを追加できます。
アップデートwordpress-traefik-letsencrypt-compose.yml
:
services:
redis:
image: redis:alpine
networks:
- wordpress-network
restart: unless-stopped
Redisを使用するようにWordPressを構成します。
- Redis Object Cache のような Redis キャッシングプラグインをインストールします。
redis
サービスに接続するように構成します。
セキュリティのベストプラクティス
- 安全な環境変数:
- Docker シークレットまたは環境変数を使用して、機密情報を安全に管理します。
- 機密データをバージョン管理にコミットしないでください。
- Docker ソケットへのアクセスを制限します。
- Docker ソケットは、セキュリティ リスクを最小限に抑えるために読み取り専用 (
:ro
) でマウントされます。
- Docker ソケットは、セキュリティ リスクを最小限に抑えるために読み取り専用 (
- 画像を最新の状態に保つ:
- Docker イメージを定期的に更新して、セキュリティ パッチと改善を含めます。
Traefikの詳細設定
- ミドルウェア: レート制限、IP ホワイトリスト、およびその他の要求変換のためのミドルウェアを実装します。
- モニタリング: PrometheusやGrafanaなどの監視ツールと統合して、高度な洞察を得ることができます。
- ワイルドカード証明書: 複数のサブドメインがある場合は、ワイルドカード証明書を使用するように Traefik を設定します。
まとめ
Traefikを使用してWordPressサイトをDocker化すると、開発とデプロイのプロセスが簡素化され、一貫性、スケーラビリティ、効率性が実現します。 実際の例を活用し、既存のデータを組み込むことで、堅牢なWordPress環境のセットアップに役立つカスタマイズされたガイドを作成しました。
既存のサイトを管理している場合でも、新しいプロジェクトを開始する場合でも、このセットアップにより、DockerとTraefikが面倒な作業を処理しながら、優れたWebサイトの開発という最善のことに集中できます。
さあ、試してみてください! これらのツールを採用することは、ワークフローを最新化し、進化し続けるテクノロジー環境で一歩を踏み出すための一歩です。
さらに詳しく
スキルをさらに向上させ、セットアップを最適化するには、次のリソースを確認してください。
- Docker ニュースレターを購読する
- Docker Desktop の最新リリースを入手する
- Docker のドキュメント
- Compose ファイル参照
- WordPress Docker Bitnami イメージ
- Traefik のドキュメント
- Docker ネットワークを理解する
- Docker シークレットで機密データを管理する
- Docker用のWordPressプラグイン
- Redisオブジェクトキャッシュプラグイン
- 質問がありますか? Docker コミュニティがお手伝いします。
- ドッカーは初めてですか? 始めましょう。