クラウド VPS byGMOでDocker-composeをインストールしてWordPressとDjangoを動かしました!

※ 当サイトではアフィリエイト広告を利用しています。リンクは広告リンクも含みます。

この記事は約7分で読めます。
広告

GMOクラウドのVPS [最新版Plesk] 詳細はこちら に申し込んで
Docker-composeをインストールし
Docker-composeでWordPress、Djangoをインストール。
ただし同じ8000番ポートを使用し、片方のコンテナを停止させて確認しています。
httpの80番やhttpsの443ではないので、
このままでは一般によくあるWordPressやDjangoのサイトと同じように
公開できるものではないのでご注意ください。
パソコンはWindows11。クラウド VPS byGMOのOSはubuntu。

当記事ではWordPress、Djangoのセキュリティ対策は、
まったく考慮されていませんので、ご了承ください。

こちら↓の記事の続きです。

広告

Docker+Docker-compose

DockerとDocker-composeをインストールしました。
DockerはUbuntu on さくらVPS に Docker Engine をインストールしてみたを参考にしつつ
公式?Docker Engine インストール(Ubuntu 向け)をやりました。

補足説明
上のページのコードを以下のようにWordPressに貼り付けると/が\になってます。
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
これは改行コードが貼り付ける場所によって変わってると思われます。
Windows11のWindowsPowershellは、そのままコピペでEnterでうまくいきます。
エラーになる場合
改行されてる部分は半角スペースに置き換えて実行するとうまくいくかも。
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-pluginを実行したらターミナルが動かなくなったが
管理画面のコンソールのほうで
sudo docker run hello-worldを実行したら、
ちゃんとインストールできていることが確認できました。
docker --versionで確認すると
Docker version 25.0.3, build 4debf41

Docker-composeは Docker と docker-compose をインストールするを参考にしつつ
公式?Docker Compose のインストールLinux スタンドアロンライブラリタブでやりました。docker-compose –versionでインストールできたかバージョン確認。
Docker Compose version v2.4.1

WordPress

DockerとDocker-composeがインストールできたのでWordPressを入れてみます。
ConoHa VPSでDockerを使う方法を参考に実行します。
SSH接続いだところは/rootなので、

docker-compose.ymlは以下の方法で書きました。
mkdir wordpress_test
cd wordpress_test
vim docker-compose.yml
でi(インサートモード)を押す→右クリック貼り付け
この貼り付けはWindows11のPowershell限定でうまくいくのかもしれない。
結構vimは使いずらいです。
その後、ESC(ノーマルモード)→:wq(保存終了)→Enter

以下の変更します。
管理画面のファイアウォールで「ファイアウォールを管理」→ルールを管理→新しいルールの追加
→ルール名に任意の文字→ローカールポート8000→追加
自分のクラウド VPS byGMOのIPアドレス:8000でWordPressが表示されます。

個人メモ
さくらVpsでうまくいったポート80への変更は以下エラーが出た。
     ports:
       - "8000:80"
↓↓↓↓
     ports:
       - "80:80"
Error response from daemon: driver failed programming external connectivity on endpoint wordpress_test-wordpress-1 (92d55c81516e5045c4caa7f0f92c36cb11fae9f10254f672b7d55519ba524baa): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use

Vsコードで接続

こちら↓で既にVsコードは設定していたので、その続きでやっています。

Vsコード→左のリモート接続→”configに設定したホスト名”
→”→(現在のウィンドウで接続)をクリック”
→select the platform of the remote host”configに設定したホスト名”→Linux
→sshキーのパスフレーズを入力してください
これで接続できました。ターミナルが表示されていなかったら表示→ターミナル。

Django

WordPress同じポート8000を使うのでWordPressのコンテナは停止しておきます。
さくらVpsでやったことと同じことをやります。

ターミナルで
mkdir django_test
cd django_test
フォルダを開くでVPS上のフォルダが選択できれば選択します。

できない場合
ファイルを追加します。
ショットカットキー:Ctrl+Nで「 Untitled-1 」が開きます。
ショットカットキー:Ctrl+Sで「名前を付けて保存」が開きます。
/root/Untitled-1 となっているので
/root/django_test/DockerfileでEnterを押すとファイルが作成されます。
あとはコードを追加してCtrl+Sで上書き保存
同じ要領でファイルを追加していきます。
#コンテナ作成
sudo docker-compose run --rm -p 8000:8000 web bash
#プロジェクト作成
django-admin startproject composeexample .
cd composeexample
#実行
python manage.py runserver 0.0.0.0:8000

自分のクラウド VPS byGMOのIPアドレス:8000にアクセスすると表示されます。
http://localhost:8000/でも動いてしまうので、
ローカル(自分のパソコン)でも実行されているようです。
またVscodeを閉じると表示されなくなります。多分コンテナが停止する。

WordPressとDjangoを同時に動かしてみる

この方法は本番では、やめた方がいいかも。参考程度に実行してください。
WordPressを立ち上げた状態にします。

Djangoのdocker-compose.ymlを修正
略
    ports:
      - "8001:8000"
コンテナは --rm(コンテナ終了時にコンテナ自動的に削除)は一応、使わない。
sudo docker-compose run -p 8001:8000 web bash

コンテナ起動後の下の命令のport指定はそのまま0.0.0.0:8000
python manage.py runserver 0.0.0.0:8000
これでWordPress(port8000)とDjango(port8001)で取り合えず動かせます。
管理画面のファイアウォールで「ファイアウォールを管理」→ルールを管理→新しいルールの追加
→ルール名に任意の文字→ローカールポート8001→追加

まとめ

さくらのVPS でやったことと同じことをしましたが微妙に違いました。

イチゲをOFUSEで応援する(御質問でもOKです)Vプリカでのお支払いがおすすめです。
MENTAやってます(ichige)

イチゲをOFUSEで応援する(御質問でもOKです)Vプリカでのお支払いがおすすめです。
MENTAやってます(ichige)

コメント

タイトルとURLをコピーしました