Iron_Butterflyによる記事が最近公開されました。これには、とりわけ、Dockerコンテナー内で強力なElasticSearch検索エンジンを起動する方法が記載されています。 このベクトルを継続し、PleskとDocker拡張機能を使用して、Dockerコンテナーを使用して解決できる他のタスクを説明します。
ショートプラン
この記事では、Docker拡張機能を使用して、DockerコンテナなしではPleskで解決が困難または不可能な問題を解決する方法を検討します。 このタスクのリストは、ユーザーからの一般的な質問に基づいています。 ユーザーとして、ホスティングの所有者、Webアプリケーション開発者、WordPress管理者を検討します。
タスク:
-データベースのさまざまなバージョンの同時使用。
-WordPressのMemcached展開。
-独自のNextcloudクラウドストレージを使用。
-Goで独自のアプリケーションを起動します。 独自のgitリポジトリを起動します。
-戦闘サーバーの動作を妨げることなく、Pleskの新しいバージョンをテストします。
この記事のすべての例は、Docker拡張機能の無料バージョンを使用して作成されていることを明確にしたいと思います。 有料版では、リモートサーバー上のDockerサービスを管理できます。
導入する代わりに
使用される用語の簡単な辞書
- Dockerは、オペレーティングシステムレベルの仮想化環境でのアプリケーションの展開と管理を自動化するためのソフトウェアです。
- Docker拡張機能(Docker拡張機能) -パネル自体の機能を拡張するためにPleskコントロールパネル内にインストールされる拡張機能。
特定の例を取り上げる前に、現在のバージョンの制限を簡単に見て、Pleskでコンテナを操作できるように準備しましょう。
既知の問題と制限
- Dockerfileで指定されたポートはデフォルトで設定されています。 一部のコンテナでは、この動作は望ましくありません。 アクセスが不要な場合は、常に外部からのコンテナへのアクセスを確認してブロックしてください。
- システムファイアウォールを使用して、外部からコンテナへのアクセスをブロックすることができます。 クラウド環境では、これらのポートはデフォルトでクラウドファイアウォールやセキュリティグループで閉じることができます。 この場合のコンテナは、localhostから利用できます。
- すべてのボリュームは、読み取り/書き込み権限でマウントされます。 読み取り専用のアクセス許可を設定することはできません。
- docker-composeとその構成ファイルは使用できません。
環境の展開。 Docker拡張機能をインストールする
0. Let's Encryptを使用して有効な証明書を取得します(これはオプションの手順です。この方法で、自己署名証明書に関する警告を削除します)。
1.左側のメニューで[拡張機能]を選択します。
2. Dockerを見つけます。
3.「インストール」をクリックします。
4.インストールプロセスが完了するまで待ちます。
5.拡張機能に移動します。 できた
Let's Encryptを使用して有効な証明書を取得する(オプション)
左側のメニューで[拡張機能]を選択します
Dockerを見つける
インストールをクリックします
インストールプロセスが完了するまで待ちます。
拡張機能に移動します。 完了
タスク
ホスティングプロバイダー
- フォーラムのクライアントは、MySQL / MariaDBをPleskでサポートされている最新バージョンにアップグレードする方法を定期的に尋ねています。
- MySQL 5.7またはMariaDB 10.2データベースが最小要件で指定されているWebアプリケーションの使用方法、またはクライアントがデータベースの最新バージョンを使用したいという質問が発生する場合があります。 彼女はパフォーマンステストが得意です。
- クライアントは、データベースではなく、MySQLサーバーを完全に制御することを望んでいます。
すぐにこれらの問題を解決する方法を検討しますが、その前にWeb開発者が直面する可能性のあるタスクを確認します。
ウェブ開発者
あなたがWebアプリケーション開発者であるとしましょう。 今日、すべてのデータをSQLデータベースに保存する新しいWebアプリケーションの開発を開始します。 どのSQLデータベースを使用しますか? 次のように、すべての一般的なデータベースで動作するこのようなWebアプリケーションを作成することをお勧めします これにより、より多くの顧客を引き付けることができます。 では、どのデータベースを知っていますか?
- Pleskが公式にサポート(これは完全なリストではなく、単なる例です)
- MySQL 5.5 / 5.6 / 5.7
- MariaDB 10.0 / 10.1
- PosgreSQL 9.5
- Pleskではサポートされていません
- MySQL 8.0
- MariaDB 10.2
- PostgreSQL 9.6
- 他に何か?
- Linux上のMicrosoft SQL Server
さて、アプリケーションの準備は完了しましたが、これらすべてのデータベースでテストする必要があります。 Plesk、Docker、およびDocker拡張機能を使用してこの問題を解決する方法を見てみましょう。
必要なすべてのデータベースを含むコンテナをインストールします
Docker Hubで公式コンテナーを使用します。
- MySQL: hub.docker.com / _ / mysql
- MariaDB: hub.docker.com / _ / mariadb
- PostgreSQL: hub.docker.com / _ / postgres
MariaDB 10.0などのコンテナの1つをインストールする手順を検討してください。
- MariaDBで使用可能なコンテナーを検索し、必要なバージョンを選択します。
- インストールが完了するまで待ちます。
- 必要なパラメーターを設定します。
- 自動ロードをオンにします。
- 静的ポートマッピングを指定します。
- データがコンテナの外部に保存されるようにボリュームマッピングを追加します。
- rootのパスワードで環境変数を設定します。
- コンテナを作成し、開始するのを待ちます。
MariaDB 10.1 / 10.2、MySQL 5.5 / 5.6 / 5.7 / 8.0、PostgreSQL 9.5 / 9.6のコンテナを作成する手順を繰り返します。
MariaDBで使用可能なコンテナーを検索し、必要なバージョンを選択します
インストールが完了するのを待ちます
必要なパラメーターを設定します
コンテナを作成し、開始するのを待ちます
コンテナを作成するための手順を繰り返します。
Pleskで作成されたデータベースを使用する
以下は、作成されたデータベースを使用するための2つのオプションです。
- 作成したデータベースをPleskに追加して、顧客がサブスクリプションで使用できるようにします。
- データベースがPleskでサポートされていない場合は、直接接続して使用できます(これは、たとえばMySQL 8.0に関連します)
カスタマイズされたシステムで結果がどのように見えるかを示すいくつかのスクリーンショット。
PleskにDBを追加
Pleskのデータベースの結果として得られるリスト
OSの内部はどのように見えますか
WordPress管理者
Wordpressを使用するサイトの所有者に関連する可能性のある別のタスクと、この記事で検討したいソリューション。
- Memcachedデーモンをインストールして、WordPressの速度を上げ、CPUの負荷を減らします。
- セキュリティ上の理由から、WordPress以外からのMemcachedへのアクセスを無効にする必要があります。
- この例では、PleskがGoogle Cloudにデプロイされているため、クラウドプラットフォームのファイアウォールで保護されています。
- セキュリティ上の理由から、WordPress以外からのMemcachedへのアクセスを無効にする必要があります。
手順:
- ファイアウォールの設定を確認してください。memcachedへの外部接続をブロックする必要があります。
- Memcachedでコンテナーを見つけてインストールします。
- 自動実行を有効にし、ポートバインディングを構成します。
- コンテナを実行します。
- すべてが機能していることを確認します。
ファイアウォールの設定を確認し、memcachedへの外部接続をブロックする必要があります(個別に)
Memcachedでコンテナーを見つけてインストールする
自動実行を有効にし、ポートバインドを構成する
コンテナを実行
すべてが機能することを確認する
組織
小さな組織に関連する可能性のあるタスク:Nextcloudに基づいてファイルを交換するための独自のリソースが必要です。 この問題も簡単に解決できます。
Dockerを使用したPleskのネイティブNextcloud?
手順:
- Nextcloudでコンテナーを見つけてインストールします。
- ボリュームマッピングは未構成のままであることに注意してください。 これは意識的に行われます NextcloudのDockerfile内では、名前のないドッカーボリュームが使用されます。
- 開始するのを待ちます。
- 「ウェブサイトとドメイン」でDockerのプロキシルールを構成します。
- Nextcloud Webインターフェイスを開き、管理者のユーザー名とパスワードを設定します。
- できた Nextcloudを使用できます。
Nextcloudでコンテナーを見つけてインストールする
開始するのを待ちます
WebサイトとドメインでDockerのプロキシルールを構成する
Nextcloud Webインターフェイスを開き、管理者名とパスワードを設定します
できた nextcloudを使用できます
開発者に行く
現在、PleskにはGoで動作する拡張機能はありませんが、Goでアプリケーションを記述し、DockerコンテナのPleskで実行できます。 Goでの記述方法がわからないため、明確にするために、Goで記述された完成品を取り上げ、Pleskで独自のgitサービスを実行する方法を示します。
Gogsでコンテナーを見つける
Gogsを使用してコンテナーをセットアップする
Gogsでコンテナーを起動する
Gogs自体の初期設定を指定します
できた 独自のgitサービスが稼働しています
最初のリポジトリを作成します。 それを呼び出しましょう... HelloWorld
Pleskの新しいバージョンをテストしています!
Docker拡張機能を使用してPleskをDockerコンテナとしてPleskにインストールしましょう! 「なぜ?」という質問にすぐに答えます。
- サイトの戦闘バージョンに関係なく、隔離された環境で独自に計画した変更をテストし、それをサイトのパブリックバージョンにのみ適用できます。
- Pleskプレビューを展開し、必要に応じて新しい機能を確認し、Webサイトが将来更新される準備ができていることを事前に確認できます。
Pleskでコンテナを見つける
Pleskでコンテナを設定します
Pleskでコンテナを起動します。 できた 確認できます
おわりに
結論の代わりに、日常の仕事で定期的に使用しているDocker Hubとのパブリックコンテナ、またはその逆の理由で、タスクでパブリックコンテナの使用を拒否した理由をコメントで議論することをお勧めします。