Plesk – Docker を使ってWebアプリケーションをサクッと立ち上げよう

あけましておめでとうございます。昨年の夏からPleskの記事提供を始めて、もう年が変わってしまいました。Pleskも昨年10月に新バージョンとなるPlesk Onyxがリリースされ、各事業者社様のクラウドサービスでも少しずつ提供開始されているようです。実はすでに使っているお客様もいるのではないでしょうか?
今回の記事では、Plesk Onyxのパネルを通したDocker機能の利用方法についてご説明します。Dockerのコマンドライン操作を知らなくても、ブラウザ一つで、Docker Hubに格納される多様なWebアプリケーション – Dockerイメージが選択でき、そして、Pleskが起動するLinuxサーバ内に、対象アプリケーションが動くコンテナを容易に立ち上げることができます。例えば、いま開発しているWebアプリケーションとオブジェクト指向データベース MongoDBを連携させたい、プロジェクトの管理にRedmineを立ち上げたい、ファイル共有にownCloudを使いたいといったユーザニーズに、即対応していくことができます。もちろん今までも、Linux上にこうしたアプリケーションをコツコツとインストールしていくことはできましたが、十分なスキルを持つエンジニアでも面倒な作業でした。以降では、ファイルホスティングサービスを実現するownCloudをPlesk OnyxのDocker機能でサクッと稼働させてみましょう。Dockerについては、さくらのナレッジ”これから始める「DockerでかんたんLAMP環境 for CentOS」”等の関連記事で調べてみましょう。

ownCloudを起動してみよう

早速、Plesk OnyxがインストールされているLinuxサーバ上に、ownCloudが動くコンテナを起動してみましょう。作業は次の3ステップのみ。Dockerイメージの入手、設定・起動、ownCloud内の設定です。前提として、Dockerの拡張機能はPleskの“拡張”ページのリストに登録されており、そして、Pleskの管理者ユーザ権限でのみ利用できることをご理解ください。リセラー、顧客レベルのユーザでは操作できませんのでご注意ください。

a. Docker HubからownCloudのDockerイメージを入手

管理者でログインしている前提で、パネル上の左メニュー[Docker]、もしくは、[拡張]-[Docker]をクリックしましょう。複数のリンクから対象機能に飛ぶことができます。

pl-dockerhub

表示される検索フィールドに“ownCloud”と入力し、右の虫眼鏡マークをクリックしましょう。PleskがDockerコマンドを起動して、キーワードにマッチする、Docker Hub内のDockerイメージを一覧表示します。”公式”と表示されるイメージの[実行]ボタンをクリックしましょう。

pl-downloading

Docker Hubから対象イメージのダウンロードが始まり、完了のメッセージ表示を待ちます。

b. コンテナへの設定と実行

設定画面が表示されるので、次のいくつかのパラメータ設定を進め、画面下の“OK”ボタンをクリックしましょう。

– コンテナ名  : 適当な名前(例:owncloud)
– 自動ポートマッピング  : チェックをはずす
– 外部ポート  : 10080

サーバの初期起動と共に、このコンテナの自動起動も希望する場合、対象の項目をチェックしておきましょう。

pl-properties

“情報:コンテナが起動しました。”と表示され、コンソールログにエラーメッセージが表示されていなければ完了です。

pl-monitor

c. ownCloudにアクセス、設定してみよう

ブラウザからownCloudにアクセスし、ownCloud内部の初期設定を済ませましょう。
対象サーバ名、及び、先のポート番号を指定したURLにアクセスします。

http://<サーバ名>:<ポート番号>

今回の場合、

http://www.plesku.club:10080/

にアクセスすると下記のページが現れます。表示されない場合、Firewall設定等を確認して対象ポートを許可ください。下記の画面が現れれば成功です。後は、ownCloudの管理者として、各種設定を実施ください。

pl-owncloud1

pl-owncloud2

立ち上げは予想以上に簡単でしょう。しかし、コンテナはLinuxのルート権限で実行されるため、間違った運用はセキュリティレベルの下げるものになります。ご注意ください。
その他の設定、例えば、コンテナのバックアップや、コンテナ本体のデータディレクトリをホスト側Linuxの特定ディレクトリにマウントするボリュームマッピング、既存80/443ポートのURLにコンテナの特定ポートをマップするプロキシルール等、多数の機能が提供されております。別途、追加ライセンスを加えれば、リモートのLinuxサーバにコンテナの立ち上げも可能です。詳しくは、”Plesk Onyx 管理者ガイド”をご確認ください。2017年1月現在、本機能の説明のほとんどが英語になります。順次日本語への翻訳は進めておりますので今しばらくお待ちください。

さて、誰でも考えることなのですが、Pleskのバックアップ機能からコンテナのデータディレクトリをバックアップできないものか検討してみました。残念ながらパネル操作だけでは対応できませんでした。ボリュームマッピング先を、Pleskのバックアップ対象に含めてバックアップを試みましたが、そのデータディレクトリのファイルオーナーは、Pleskの管理対象とするファイルオーナーと異なるためバックアップから除外されてしまいます。実現には、外部スクリプトによるデータのアーカイブや、ファイルオーナーを操作できる独自Dockerイメージの作成も検討してよいでしょう。

最後に

Dockerというテクノロジーは現在まで多くの技術情報が公開され、実ビジネスへの転用もあり、サーバエンジニアへの認知度は確かに上がっております。しかしながら、コマンドライン操作を前提としているため、まだまだ敷居が高く、多くのLinuxエンジニアが扱えるものではありません。Plesk Onyxが提供するDockerの機能により、手間なく、希望するWebアプリケーションの立ち上がるので、冒頭で説明したようなWebアプリ開発等、本来の業務注力へ大きな支援になります。そして、Docker Hubには、開発業務支援のためのDockerイメージばかりではなく、CRM等の顧客管理システム、サーバ監視ツール等、多様な切り口のアプリケーションパッケージが存在します。あなたのアイデア次第でまだまだ思いがけない使い方があるはずです。是非楽しんでください。
それではまた。