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
それでは、もう一度コンテナを作成しましょう。最初にコンテナを作成するときは、環境変数を渡す必要があります。次のように見えるはずです:
-e mysql_root_password =パスワードは環境変数です。コンテナが画像から構築されている場合、この変数を読み取り、ルートユーザーのパスワードを指定された値に設定します。この場合はパスワードです。
error: database is uninitialized and MYSQL_ROOT_PASSWORD not set Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?
他の環境変数をコンテナに渡すこともできます。MySQLイメージのドキュメントに完全なリストを見つけることができます。別の例を次に示します:
以前のコンテナをwordpressdbという名前で削除しようとした場合、おそらく失敗しました。それは、コンテナがまだ背景に動作していたからです。最初に実行中のコンテナを停止してから削除するか、単に削除することができます:
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
このコンテナの構築方法をもっと知りたい場合は、DockerFileを見てください。 Debian Wheezyを使用し、Bashコマンドを使用してコンテナを構築します。リポジトリから引き出してから、MySQLDを起動します。この画像からコンテナを構築する場合、ビルドファイルのコマンドを初めて実行します。コンテナを使用する場合、それはmysqldを実行するだけです
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -d mysql:5.7
WordPressコンテナの構築
このコンテナでは、PHP画像を使用します。 PHP画像には3つのタイプがあり、Apacheに付属するPHP画像のみが必要です。
-dオプションなしでは、バックグラウンドで実行されることはありません。代わりに、コンテナが出力しているすべてのものを表示します(dockerログ[container_name]が実行するのと同じ)。 出力から、IPをそのコンテナに自動的に割り当てたことがわかります。私の場合、172.17.0.35です。ブラウザを使用してこのアドレスにアクセスすると、禁止されたエラーが発生します。何故ですか? /var/www/htmlフォルダー(コンテナファイルシステム上)には何もないためです。
2つのフォルダーのマッピングには
デフォルトでは、PHPイメージにはMySQL拡張機能がインストールされていませんが、それを修正できます。今回は、dockerfileを介してコンテナを構築します。 Dockerfilesの仕組みをすでに見てきました。それらはベース画像から構築され、いくつかの処理を行い、最後に1つのコマンドを実行します。
その後、mysqli拡張子をインストールします。
-tはリポジトリ名を指定するために使用されます。 。 DockerfileがどこにあるかをDockerに伝えます。 Dockerfileはワーキングディレクトリにあるため、。 Dockerに、作業ディレクトリにあることを伝えます Docker画像で画像を確認すると、最新のタグが付いた新しい画像が表示されます(この画像のタグを指定しなかったため)。ここで、このコンテナをこのコンテナを構築します。この画像は、php5.6-apache画像で行ったように。
では、WordPressをデータベースにリンクするにはどうすればよいですか?まず、WordPressコンテナをデータベースコンテナ(WordPressDB)にリンクする必要があります。これは、2つのコンテナをリンクすることで実行できます。リンクの詳細については、こちらをご覧ください。
上記の手順の一部は、非常に不可解で複雑に見えるかもしれません。そのため、さまざまなフレームワークや言語に公式画像があります。すべてのフレームワークまたは言語には、それらがどのように機能するかについて異なる仕様があります。デフォルトでは、Dockerはアプリケーションをファイルシステムに書き込むことを許可していません。これは悪いことですか、それとも良いことですか?良いことだと思います。ファイルのみを保持する3番目のコンテナを作成できます。そこでアプリケーションはファイルを書き込むことができます。このようにして、よりモジュール式アーキテクチャがあります。しかし、(WordPressのように)変更できないフレームワークの場合、回避策があります。
この記事では、WordPress用のコンテナを構築する方法について説明しました。私たちはかなり不可解な方法でそれを行いましたが、覚えにくい長いコマンドでそれを行いました。より簡単な方法があるはずです、そしてあります! Dockerチームは、数分で簡単にセットアップできるWordPressイメージを構築しました。結局のところ、WordPressをセットアップするためにすべてのコマンドを覚えたいのは誰ですか?
このシリーズの次の記事では、公式のWordPress画像の使用方法を示します。DockerComposeを使用して物事をさらに簡単にする方法も学びます。
Dockerコンテナの複数のWordPressサイトを管理するには、Docker Composeを使用して各サイトを別のサービスとして定義できます。 Dockerネットワークを使用して、各サイトのネットワークトラフィックを分離することもできます。 nginxのようなリバースプロキシを使用している場合、ドメイン名に基づいて適切なコンテナにトラフィックをルーティングするように構成できます。
docker run --name wordpressdb -d mysql:5.7
error: database is uninitialized and MYSQL_ROOT_PASSWORD not set
Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?
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
docker run --name wordpressdb -d mysql:5.7
ここまで行ったら、すべてを正しく行いました。次に、WordPressをデータベースにリンクする必要があります。これは、WordPressの有名な5分間のインストールとはほど遠いものですが、長期的にはDockerの利点を確認できます。
error: database is uninitialized and MYSQL_ROOT_PASSWORD not set
Did you forget to add -e MYSQL_ROOT_PASSWORD=... ?
entrypoint.shファイルをまだ作成していませんが、まもなくこれを行います。コピーをコピーintorepoint.shがコンテナの内側に /内部にコピーします。 Chmod 777 /entrypoint.shは、そのファイルを実行可能にします。そして最後に、EntryPointはそのファイルを実行します。次に、dockerfileと同じディレクトリにEntryPoint.shファイルを作成します。
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
docker rm -f wordpressdb
私たちがしなければならない最後のことは、WordPressコンテナを停止し、再度開始するときに発生する問題を回避することです。問題は、WordPressが最後のIPを「ホーム」および「サイト」URLとして保存することです。 WordPressコンテナを停止して、もう一度起動します。今回は新しいIPがあります。ブラウザでそれを試すと、画像、CSS、JavaScriptファイルが適切に含まれていないことがわかります。ソリューションはシンプルで、この行を追加してWP-Config.phpを変更するだけです。
docker run --name wordpressdb -d mysql:5.7
これまでの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サイトを管理するにはどうすればよいですか?
以上がWordPress用のDockerコンテナを手動で構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











最近、ユーザーがお気に入りの投稿をパーソナライズされたライブラリに保存できるようにすることで、ユーザー向けのパーソナライズされたエクスペリエンスを作成する方法を示しました。一部の場所で名前を使用することで、パーソナライズされた結果を別のレベルに引き上げることができます(つまり、ウェルカム画面)。幸いなことに、WordPressにより、ユーザーのログインに関する情報を簡単に入手できます。この記事では、現在ログインしているユーザーに関連する情報を取得する方法を紹介します。 get_currentuserinfo()を使用します。 関数。これは、テーマ(ヘッダー、フッター、サイドバー、ページテンプレートなど)のどこでも使用できます。それが機能するためには、ユーザーをログインする必要があります。したがって、使用する必要があります

WordPressの記事リストを調整するには4つの方法があります。テーマオプションを使用し、プラグイン(投稿タイプの注文、WP投稿リスト、ボックスのものなど)を使用し、コード(functions.phpファイルに設定を追加)を使用するか、WordPressデータベースを直接変更します。

ブログは、人々が自分の意見、意見、意見をオンラインで表現するための理想的なプラットフォームです。多くの初心者は自分のウェブサイトを構築することに熱心ですが、技術的な障壁やコストの問題を心配することをためらっています。ただし、プラットフォームが初心者の能力とニーズを満たすために進化し続けるにつれて、今まで以上に容易になり始めています。 この記事では、テーマの選択からプラグインの使用まで、セキュリティとパフォーマンスを向上させ、独自のWebサイトを簡単に作成できるように、WordPressブログを構築する方法を段階的に導きます。 ブログのトピックと方向を選択してください ドメイン名を購入したり、ホストを登録する前に、カバーする予定のトピックを特定することをお勧めします。個人的なウェブサイトは、旅行、料理、製品のレビュー、音楽、またはあなたの興味を引き起こす趣味を中心に展開できます。あなたが本当に興味を持っている領域に焦点を当てることは継続的な執筆を奨励することができます

親カテゴリアーカイブページに子カテゴリを表示する方法を知りたいですか?分類アーカイブページをカスタマイズするときは、訪問者にとってより便利にするためにこれを行う必要がある場合があります。この記事では、親カテゴリアーカイブページに子カテゴリを簡単に表示する方法を示します。サブカテゴリが親カテゴリアーカイブページに表示されるのはなぜですか?親カテゴリアーカイブページにすべての子カテゴリを表示することにより、訪問者にとってより一般的で便利になります。たとえば、本に関するWordPressのブログを実行し、「テーマ」と呼ばれる分類法を持っている場合、「小説」、「ノンフィクション」などのサブ課題を追加して、読者ができるようにすることができます。

過去には、拡張後のプラグインを使用してWordPressの投稿を期限切れにする方法を共有してきました。さて、Activity List Webサイトを作成するとき、このプラグインは非常に便利であることがわかりました。期限切れのアクティビティリストを簡単に削除できます。第二に、このプラグインのおかげで、有効期限後の日付までに投稿を並べ替えることも非常に簡単です。この記事では、WordPressの有効期限後の日付で投稿を並べ替える方法を紹介します。プラグインの変更を反映してカスタムフィールド名を変更するためのコードを更新しました。コメントで私たちに知らせてくれたTajimに感謝します。特定のプロジェクトでは、イベントをカスタムポストタイプとして使用します。今

WordPressホストを使用してWebサイトを構築するには、次のようにする必要があります。信頼できるホスティングプロバイダーを選択します。ドメイン名を購入します。 WordPressホスティングアカウントを設定します。トピックを選択します。ページと記事を追加します。プラグインをインストールします。ウェブサイトをカスタマイズします。あなたのウェブサイトを公開します。

WordPress Webサイトやソーシャルメディアアカウントを自動化する方法をお探しですか? 自動化を使用すると、WordPressのブログ投稿やFacebook、Twitter、LinkedIn、Instagramなどで自動的に共有できます。 この記事では、IFTTT、Zapier、およびUncanny Automatorを使用してWordPressとソーシャルメディアを簡単に自動化する方法を紹介します。 WordPressとソーシャルメディアを自動化する理由 WordPreを自動化します

WordPressソースコードのインポートには、次の手順が必要です。テーマ変更のサブテーマを作成します。ソースコードをインポートし、サブトピックのファイルを上書きします。サブテーマを有効にして効果的にします。変更をテストして、すべてが機能することを確認します。
