検索
ホームページCMS チュートリアル&#&プレスWordPress用のDockerコンテナを手動で構築する方法

WordPress用のDockerコンテナを手動で構築する方法

前の記事では、Dockerとは何か、いくつかのコマンドで起きて実行する方法について説明しました。ただし、まだ役に立つことはまだありません。 Dockerを使用してWordPress環境を取得するには多くの方法があります。この記事では、WordPressを使用するようにDockerコンテナを手動でセットアップする方法を紹介します。 Dockerに簡単に紹介したい場合は、ここで最初の記事に戻ることができます。

キーテイクアウト

    Dockerは、MySQLとWordPress用のコンテナを作成することにより、WordPressを使用するように手動でセットアップできます。 MySQLコンテナは、Docker HubのMySQL画像を使用して作成され、WordPressコンテナはPHP画像から構築されています。
  • MySQLコンテナでは、最初に作成されたときに環境変数を渡す必要があり、ルートユーザーのパスワードを設定します。追加の環境変数は、mysql_databaseなどのコンテナに渡すこともできます。これにより、その名前が作成されたデータベースが作成されます。
  • WordPressコンテナのPHP画像には、デフォルトでMySQL拡張機能がインストールされていません。これは、PHP:5.6-apache画像を使用し、mysqli拡張機能をインストールし、apache2-foregroundを実行するDockerFileを介してコンテナを構築することで修正できます。
  • WordPressコンテナは、データベースが機能するためにMySQLコンテナにリンクする必要があります。これは、WordPressコンテナを実行するときに-Link引数を使用して行われ、MySQLコンテナの名前を最初の部分として、エイリアスは2番目の部分としてエイリアスを使用します。
  • ファイル許可と、再起動するたびにWordPressコンテナのIPアドレスが変更される問題が発生する可能性があります。これらは、dockerfileを変更して、コンテナのファイルシステムへの書き込みアクセスを保証するentrypoint.shファイルを含めることと、「ホーム」と「サイト」URLをサーバーのように定義するWP-config.phpファイルに行を追加することによってアドレス指定できます。 IPアドレス。
  • mysql
  • のセットアップ
  • すべてのWordPressインストールにはMySQLデータベースが必要です。これを行うには、Docker Hubに向かい、MySQL画像を見つけます。
  • Dockerチームには、使用できるMySQLイメージが既にあります。端末でコマンドを実行する前に、この画像のドキュメントを必ずお読みください。執筆時点の最新バージョンは5.7です。ただし、最新のタグ名は5.6です。画像の最新バージョンは、以前のバージョンでは安定した状態にあります。
この画像を使用してコンテナをセットアップする基本コマンドは次のとおりです。

地元の画像のコピーがまだない場合、DockerはDockerハブからそれを引っ張ります。私たちはこれまでのところ、-Nameがコンテナに名前を付けることを知っています。

Docker PSを実行すると、WordPressDBコンテナが実行されていないことがわかります。しかし、それは実行されているはずです。 dockerログを実行すると、WordPressDBが表示されると、次のようなメッセージが表示されます。

docker run --name wordpressdb -d mysql:5.7
なぜそれがあるのですか?最初にコンテナを構築したときに、引数としてルートパスワードを渡さなかったからです。それで、まさにそれをしましょう。まず、Docker RM WordPressDBを使用してWordPressDBという名前で作成したコンテナを削除する必要があります。これは、新しいコンテナが同じ名前を使用し、同じ名前の2つのコンテナができないためです。

それでは、もう一度コンテナを作成しましょう。最初にコンテナを作成するときは、環境変数を渡す必要があります。次のように見えるはずです:

-e mysql_root_password =パスワードは環境変数です。コンテナが画像から構築されている場合、この変数を読み取り、ルートユーザーのパスワードを指定された値に設定します。この場合はパスワードです。
error: database is uninitialized and MYSQL_ROOT_PASSWORD not set
  Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?
DockerログをWordPressDBをチェックすると、非常に長いメッセージが表示されますが、これについて心配する必要はありません。動作しています。繰り返しますが、Docker PSを実行すると、アクティブで実行されているWordPressDBという名前のコンテナが表示されます。

他の環境変数をコンテナに渡すこともできます。MySQLイメージのドキュメントに完全なリストを見つけることができます。別の例を次に示します:

以前のコンテナをwordpressdbという名前で削除しようとした場合、おそらく失敗しました。それは、コンテナがまだ背景に動作していたからです。最初に実行中のコンテナを停止してから削除するか、単に削除することができます:

docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
mysql_databaseを使用すると、その名前のデータベースが作成されていることを確認します。このようにして、データベースとルーツのパスワードの名前が何であるかを確実に知っています。パスワードとデータベースを備えた別のユーザーを作成することもできます。これがあなたのための簡単なテストです。彼らのドキュメントを見て、これを自分でやろうとしています。

このコンテナの構築方法をもっと知りたい場合は、DockerFileを見てください。 Debian Wheezyを使用し、Bashコマンドを使用してコンテナを構築します。リポジトリから引き出してから、MySQLDを起動します。この画像からコンテナを構築する場合、ビルドファイルのコマンドを初めて実行します。コンテナを使用する場合、それはmysqldを実行するだけです

docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -d mysql:5.7
実行中のmysqlコンテナができたので、WordPressを実行するコンテナを実行できます。

WordPressコンテナの構築

このコンテナでは、PHP画像を使用します。 PHP画像には3つのタイプがあり、Apacheに付属するPHP画像のみが必要です。

-dオプションなしでは、バックグラウンドで実行されることはありません。代わりに、コンテナが出力しているすべてのものを表示します(dockerログ[container_name]が実行するのと同じ)。

出力から、IPをそのコンテナに自動的に割り当てたことがわかります。私の場合、172.17.0.35です。ブラウザを使用してこのアドレスにアクセスすると、禁止されたエラーが発生します。何故ですか? /var/www/htmlフォルダー(コンテナファイルシステム上)には何もないためです。

では、そのフォルダーにファイルをどのように配置できますか?デフォルトでは、そのフォルダーはコンテナ内にとどまり、目に見えません。ただし、長くはありません(RM WordPressをDockerすることを忘れないでください)。まず、フォルダーを作成してその内部をナビゲートします(古いWordPressコンテナを削除することを忘れないでください)。

2つのフォルダーのマッピングには

-Vが使用されます。最初の部分はOSのフォルダーで、2つ目はコンテナファイルシステムのフォルダーです。 UNIXのようなシステムでは、「$ PWD」は、コマンドが実行されるときの場所を返します。ターミナルを最初に開始すると、ホームディレクトリになります。 Windowsの同等のものはCDです。PWDについてはここで見つけることができます。
docker run --name wordpressdb -d mysql:5.7
私たちの例では、最初の部分は「$ PWD/」です。これはローカルディレクトリであり、2番目の部分は/var/www/html/です。 -vは、両方がフルパスである必要があります。ただし、ワーキングディレクトリを見ると、ファイルが存在しないことがわかります。以下を含むindex.phpというファイルを作成します

これをブラウザでもう一度確認してください。今回は、新しいコンテナを作成したため、IPアドレスが変更されたことに気付くでしょう。新しいコンテナを作成するたびに、IPを変更します。ブラウザにそのメッセージが表示されたら、すべてを正しく行いました。

WordPressファイルをそこに配置した場合に何が起こるか見てみましょう。 Docker Stop WordPressを使用して、コンテナを停止します。 WordPress.orgからWordPressの最新のコピーをつかみ、プロジェクトフォルダー内にファイルをドロップします。 Docker Start WordPressを使用して、もう一度コンテナを起動します。また、最初にファイルを読み取り可能にする必要があることに注意してください。 *nixシステムでCHMOD -R 777 ProjectFolderを実行できます。ページをリロードすると、ブラウザは次のように表示されます。
error: database is uninitialized and MYSQL_ROOT_PASSWORD not set
  Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?

デフォルトでは、PHPイメージにはMySQL拡張機能がインストールされていませんが、それを修正できます。今回は、dockerfileを介してコンテナを構築します。 Dockerfilesの仕組みをすでに見てきました。それらはベース画像から構築され、いくつかの処理を行い、最後に1つのコマンドを実行します。

dockerfileという名前の新しいファイルを作成します:

PHP:5.6-Apache画像を使用したい
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7

その後、mysqli拡張子をインストールします。

次に、PHPイメージのようにapache2-foregroundを実行する必要があります(結局mysql拡張子をインストールする必要がありました)。

ビルドファイルを使用して、画像をビルドできます。この画像を使用して、コンテナを構築します
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -d mysql:5.7

-tはリポジトリ名を指定するために使用されます。 。 DockerfileがどこにあるかをDockerに伝えます。 Dockerfileはワーキングディレクトリにあるため、。 Dockerに、作業ディレクトリにあることを伝えます

Docker画像で画像を確認すると、最新のタグが付いた新しい画像が表示されます(この画像のタグを指定しなかったため)。ここで、このコンテナをこのコンテナを構築します。この画像は、php5.6-apache画像で行ったように。

docker run --name wordpressdb -d mysql:5.7
コンテナIPのブラウザを確認すると、次のようなものが表示されます:

WordPress用のDockerコンテナを手動で構築する方法ここまで行ったら、すべてを正しく行いました。次に、WordPressをデータベースにリンクする必要があります。これは、WordPressの有名な5分間のインストールとはほど遠いものですが、長期的にはDockerの利点を確認できます。

では、WordPressをデータベースにリンクするにはどうすればよいですか?まず、WordPressコンテナをデータベースコンテナ(WordPressDB)にリンクする必要があります。これは、2つのコンテナをリンクすることで実行できます。リンクの詳細については、こちらをご覧ください。

新しい引数は-linkです。最初の部分WordPressDBは、リンクしたいコンテナの名前で、2番目の部分MySQLはエイリアスです。 Dockerは、WordPressコンテナのホストを変更し、WordPressDBのIPをMySQLに設定します。したがって、WordPress構成のデータベースの情報を入力すると、ホストを「mysql」に設定します。
error: database is uninitialized and MYSQL_ROOT_PASSWORD not set
  Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?
コンテナのIP(新しいIP)を使用してブラウザに移動します。データベースの情報を入力し、管理者パネルにログインします。新しいテーマ(ファイルシステムで変更を加えようとする)をインストールしようとすると、次のようなものが表示されます。

なぜそれがあるのですか? Apacheを実行しているユーザーがファイルシステムに書き込みアクセスを持っていないためです。これは、物事が少し難しくなる場所です。 phpwithmysql画像の新しいバージョンを構築する必要があります。 dockerfileに移動して、このように変更してください:

WordPress用のDockerコンテナを手動で構築する方法entrypoint.shファイルをまだ作成していませんが、まもなくこれを行います。コピーをコピーintorepoint.shがコンテナの内側に /内部にコピーします。 Chmod 777 /entrypoint.shは、そのファイルを実行可能にします。そして最後に、EntryPointはそのファイルを実行します。次に、dockerfileと同じディレクトリにEntryPoint.shファイルを作成します。

これは、公式のWordPress画像の単純化された回避策ですが、コンテナファイルシステムへの書き込みアクセスがあることを確認します。これで、新しい画像を作成できます:
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7

古い容器を取り外して新しい容器を作成してください。
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -d mysql:5.7

また、古いwp-config.phpファイルを削除します
docker rm -f wordpressdb
ブラウザのWordPressコンテナのIPを確認します。今回は、テーマとプラグインをインストールし、コンテナファイルシステムで変更を加えることができます。

上記の手順の一部は、非常に不可解で複雑に見えるかもしれません。そのため、さまざまなフレームワークや言語に公式画像があります。すべてのフレームワークまたは言語には、それらがどのように機能するかについて異なる仕様があります。デフォルトでは、Dockerはアプリケーションをファイルシステムに書き込むことを許可していません。これは悪いことですか、それとも良いことですか?良いことだと思います。ファイルのみを保持する3番目のコンテナを作成できます。そこでアプリケーションはファイルを書き込むことができます。このようにして、よりモジュール式アーキテクチャがあります。しかし、(WordPressのように)変更できないフレームワークの場合、回避策があります。

最終調整

私たちがしなければならない最後のことは、WordPressコンテナを停止し、再度開始するときに発生する問題を回避することです。問題は、WordPressが最後のIPを「ホーム」および「サイト」URLとして保存することです。 WordPressコンテナを停止して、もう一度起動します。今回は新しいIPがあります。ブラウザでそれを試すと、画像、CSS、JavaScriptファイルが適切に含まれていないことがわかります。ソリューションはシンプルで、この行を追加してWP-Config.phpを変更するだけです。

これらの値をWP-Config.phpファイルで定義する場合、一般的な設定で後で変更することはできないことに注意してください。
docker run --name wordpressdb -d mysql:5.7
結論

この記事では、WordPress用のコンテナを構築する方法について説明しました。私たちはかなり不可解な方法でそれを行いましたが、覚えにくい長いコマンドでそれを行いました。より簡単な方法があるはずです、そしてあります! Dockerチームは、数分で簡単にセットアップできるWordPressイメージを構築しました。結局のところ、WordPressをセットアップするためにすべてのコマンドを覚えたいのは誰ですか? このシリーズの次の記事では、公式のWordPress画像の使用方法を示します。DockerComposeを使用して物事をさらに簡単にする方法も学びます。

では、より簡単な方法があれば、なぜこの記事を書いたのですか?基本的に、Dockerの仕組みをよりよく理解することであり、これを行うには、基礎となる複雑さで手を汚す必要があります。これは個人的なルールなので、明日Dockerを使用できるようになったら、それがどのように機能し、ニーズに合わせてどのように調整するかについて詳しく知ることができます。また、Dockerが舞台裏でどのように機能するかをより深く理解していることを願っています。 DockerとWordPressでさらに楽しくなるこのシリーズの3番目の記事にご期待ください。

これまでのDockerについてどう思いますか?次のプロジェクトでそれを考えますか?以下のコメントでお知らせください。

WordPressのDockerコンテナの構築に関するよくある質問(FAQ) WordPress用のDockerコンテナが安全であることを確認するにはどうすればよいですか?>

WordPress用のDockerコンテナをセットアップする場合、セキュリティは重要な側面です。コンテナが安全であることを確認するには、常にDockerとWordPressの最新バージョンを使用してください。 Docker画像とコンテナを定期的に更新して、最新のセキュリティパッチを含めます。また、Docker Secretsを使用して、パスワードなどの機密データを管理します。容器が侵害された場合、潜在的な損傷を最小限に抑えるために、rootとしてdockerコンテナの実行を避けてください。最後に、Dockerセキュリティスキャンツールを使用して画像の脆弱性を識別および修正します。 WordPress、軽量のベース画像の使用を検討してください。これにより、画像のサイズが縮小され、ビルドプロセスがスピードアップされます。また、Dockerのマルチステージビルドを使用して、ビルドタイムとランタイムの依存関係を分離します。これにより、最終画像のサイズが大幅に削減できます。さらに、コンテナが使用できるリソース(CPU、メモリ)を制限して、ホストマシン上の利用可能なすべてのリソースを消費しないようにします。 🎜> Dockerは、トラブルシューティングのためのいくつかのツールを提供します。 「Dockerログ」コマンドを使用して、実行中のコンテナのログを表示します。コンテナがクラッシュしている場合は、「Docker Inspect」コマンドを使用して、コンテナに関する詳細情報を取得します。 「Docker Stats」コマンドを使用して、コンテナのリソース使用量を監視することもできます。ネットワークの問題に直面している場合は、「Docker Network Inspect」コマンドを使用してDockerネットワークを検査します。 Dockerコンテナで実行されているWordPressサイト「Docker CP」コマンドを使用して、コンテナからホストマシンにファイルをコピーできます。 Dockerボリュームを使用してデータを持続することもできます。 MySQLデータベースを使用している場合は、「mysqldump」コマンドを使用してデータベースのバックアップを作成できます。スケーリングアプリケーション用のいくつかのツールを提供します。 Docker Composeを使用して、マルチコンテナーアプリケーションを定義および実行し、コンテナインスタンスの数を増やすことでそれらをスケーリングできます。 Docker SwarmまたはKubernetesを使用することもできます。これは、複数のホストでコンテナを管理およびスケーリングできるオーケストレーションツールです。 Jenkins、Travis CI、GitHubアクションなどのCI/CDツールを使用して、DockerコンテナでWordPressサイトの展開を自動化できます。これらのツールは、Docker画像を作成し、テストを実行し、コンテナをDockerホストまたはKubernetesクラスターに展開できます。

dockerコンテナ内の複数のWordPressサイトを管理するにはどうすればよいですか?

Dockerコンテナの複数のWordPressサイトを管理するには、Docker Composeを使用して各サイトを別のサービスとして定義できます。 Dockerネットワークを使用して、各サイトのネットワークトラフィックを分離することもできます。 nginxのようなリバースプロキシを使用している場合、ドメイン名に基づいて適切なコンテナにトラフィックをルーティングするように構成できます。

Dockerコンテナで実行されているWordPressサイトを更新するには、Dockerハブから最新のWordPress画像を引いて、実行中のコンテナを停止し、更新された画像を使用して新しいコンテナを起動できます。更新する前にデータをバックアップすることを忘れないでください。

Dockerコンテナで実行されているWordPressサイトを監視するにはどうすればよいですか? 「Docker Stats」コマンドを使用して、コンテナのリソース使用量を監視できます。 PrometheusやGrafanaなどのツールを使用して、コンテナからメトリックを収集および視覚化することもできます。

既存のWordPressサイトをDockerコンテナに移行するにはどうすればよいですか? Dockerコンテナでは、WordPressファイルとデータベースをバックアップし、DockerFileとDocker Composeファイルを作成してWordPressおよびデータベースサービスを定義し、Docker画像を構築し、コンテナを起動する必要があります。 WordPress構成を更新して、新しいデータベースサービスを指すことを忘れないでください。

以上がWordPress用のDockerコンテナを手動で構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

3日以内にWordPressを学ぶことができます。 1.テーマ、プラグインなどのマスター基本知識。2。インストールや作業原則などのコア関数を理解します。 3.例を使用して、基本的および高度な使用法を学びます。 4.デバッグテクニックとパフォーマンスの最適化の提案を理解します。

WordPressはCMSですか?WordPressはCMSですか?Apr 08, 2025 am 12:02 AM

WordPressはコンテンツ管理システム(CMS)です。コンテンツ管理、ユーザー管理、テーマ、プラグイン機能を提供して、Webサイトコンテンツの作成と管理をサポートします。その実用的な原則には、ブログから企業Webサイトまで、さまざまなニーズに適したデータベース管理、テンプレートシステム、プラグインアーキテクチャが含まれます。

ワードプレスは何に適していますか?ワードプレスは何に適していますか?Apr 07, 2025 am 12:06 AM

wordpressisisgoodforvirtalayanywebprojectoitsversitilityasacms.itexcelsin:1)ユーザーフレンドリー、柔軟性と柔軟性と顧客化の維持、およびプルージンの数値化; 3)seooptimization;

WixまたはWordPressを使用する必要がありますか?WixまたはWordPressを使用する必要がありますか?Apr 06, 2025 am 12:11 AM

WIXは、プログラミングの経験がないユーザーに適しており、WordPressは、よりコントロールと拡張機能を必要とするユーザーに適しています。 1)WIXはドラッグアンドドロップエディターとリッチテンプレートを提供しているため、Webサイトをすばやく構築できます。 2)オープンソースのCMSとして、WordPressには巨大なコミュニティとプラグインエコシステムがあり、詳細なカスタマイズと拡張をサポートしています。

WordPressの費用はいくらですか?WordPressの費用はいくらですか?Apr 05, 2025 am 12:13 AM

WordPress自体は無料ですが、使用するには余分な費用がかかります。1。WordPress.comは、無料から支払いまでの範囲のパッケージを提供し、価格は月あたり数ドルから数十ドルまでの範囲です。 2。WordPress.orgでは、ドメイン名(年間10〜20米ドル)とホスティングサービス(月額5〜50米ドル)を購入する必要があります。 3.ほとんどのプラグインとテーマは無料で、有料価格は数十から数百ドルです。適切なホスティングサービスを選択し、プラグインとテーマを合理的に使用し、定期的に維持および最適化することにより、WordPressのコストを効果的に制御および最適化できます。

WordPressはまだ無料ですか?WordPressはまだ無料ですか?Apr 04, 2025 am 12:06 AM

WordPressのコアバージョンは無料ですが、使用中に他の料金が発生する場合があります。 1。ドメイン名とホスティングサービスには支払いが必要です。 2。高度なテーマとプラグインが充電される場合があります。 3.プロフェッショナルサービスと高度な機能が請求される場合があります。

WordPressは初心者にとって簡単ですか?WordPressは初心者にとって簡単ですか?Apr 03, 2025 am 12:02 AM

WordPressは、初心者が簡単に始めることができます。 1.バックグラウンドにログインした後、ユーザーインターフェイスは直感的であり、シンプルなダッシュボードは必要なすべての関数リンクを提供します。 2。基本操作には、コンテンツの作成と編集が含まれます。 WysiWygエディターは、コンテンツの作成を簡素化します。 3.初心者は、プラグインとテーマを介してウェブサイトの機能を拡張でき、学習曲線は存在しますが、練習を通じて習得できます。

なぜWordPressを使用するのはなぜですか?なぜWordPressを使用するのはなぜですか?Apr 02, 2025 pm 02:57 PM

人々は、その力と柔軟性のためにWordPressを使用することを選択します。 1)WordPressは、さまざまなWebサイトのニーズに適した、使いやすさとスケーラビリティを備えたオープンソースのCMSです。 2)豊富なテーマとプラグイン、巨大なエコシステム、強力なコミュニティサポートがあります。 3)WordPressの作業原則は、テーマ、プラグイン、コア関数に基づいており、PHPとMySQLを使用してデータを処理し、パフォーマンスの最適化をサポートします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。