そんな疑問を解消するためにこの記事では、ConoHa VPSでDockerを使ってみます。
- ConoHa VPSでDocker環境を作る方法
- ConoHa VPSでDockerを使ってアプリケーションの公開
ConoHa VPSでDockerを使ってアプリ公開してみた
簡単にだけど、記事の中でConoHa VPSの中でDockerを使ってアプリケーションの公開をやっています。docker-composeでやっているから、同じようにアプリケーションを公開してみたい方は参考にしてみてください。
ConoHa VPSでDockerを使う方法
ConoHa VPSでDockerを使う方法としては以下です。
- Dockerをコマンドを打ってインストールする
- Dockerテンプレートを使う
立てたサーバーに入ってDockerをインストールするコマンドを打ってインストールするか、用意されているDockerテンプレートを使うかです。
Dockerテンプレートとは
ConoHa VPSには多くのテンプレートが用意されていて、サーバー構築時にそれを選択するだけで使うことのできる環境が出来上がります。
- Laravel
- Node.js
- Ruby on Rails
- ・・・
サーバーを立てたらすぐに選択したものを使うことができる環境になっているので、手っ取り早く作成したい時には楽です。
ConoHa VPSでDockerテンプレートを使う
ここからはConoHa VPSでの作業に入ります。使用するプランや申し込み方法が分からなければ以下の記事で解説しているので、よかったらどうぞ。
既に契約している場合は管理画面にログインして進めましょう。
ConoHa VPSではサーバーを構築する際にアプリケーションを選択すれば、そのアプリケーションをインストールしてくれるので今回はそのアプリケーションにDockerを選択します。
サーバーを新規で立てる場合には上記のようにアプリケーションからDockerを選択するといいですよ
既に契約している場合はサーバーを再構築する
新規契約時でもいいけど、既に作成しているサーバーがあるので再構築します。再構築はサーバーが停止している状態じゃないと使えないからシャットダウンさせる。
停止したらネームタグをクリックしてサーバー再構築を選択。
この時にアプリケーションタブを選択して、アプリケーションにDockerを選択します。
rootパスワードやSSH Keyも設定しておきましょう。
これで[サーバー再構築]をクリックしてちょっと待つとサーバーが構築されます。構築されたらSSH接続して中身をちょっとみてみよう。
サーバーの中身を確認する
サーバーが作成されたらSSH接続して中身を見てみます。
OSはUbuntu
OSを見てみるとUbuntuですね。
Dockerのバージョン確認
dockerのバージョンは20.10.3。
docker-composeも入っている
docker-composeも入っているのかな?って思ってみてみたら入っていました。
今回はdocker-composeを使って後でアプリケーションを起動するっていうことを試してみます。
ConoHa VPSでdocker run hello-worldを実行してみる
以下コマンドを打ってHello World!!したいです。してみましょう。
$ docker run hello-world
ちゃんとimage落としてきてHello from Docker!と表示してくれていますね。
DockerアプリケーションをConoHa VPSで動かしたい
せっかくだからDockerで環境を作ったアプリケーションを動かしてみよう。docker-composeも入っていることだし、docker-comoseで作成したアプリケーションを動かしたい。
これはローカルにあるアプリケーションなんだけど、Laravelアプリケーションを作るdocker-composeです。
使用しているイメージは以下。
- nginx
- mysql
- php:8-fpm
Laravelアプリケーションを動かしているから、実際にConoHa VPSでLaravelアプリケーションが動いたら成功です。
docker-composeでアプリケーションを動かす
docker-composeでアプリケーションを動かしていくんだけど、手順としては以下。
- FTPソフトでローカルのDockerアプリケーションをアップロード
- ConoHa VPSにSSH接続してdocker-compose up
アップロードしたらローカルでやっている作業をConoHa VPS上で行うだけです。やっていきましょう。
FTPソフトでローカルのDockerアプリケーションをアップロード
ローカルにあるDockerで環境を作成したアプリケーションをFTPソフトでアップロードします。FTPソフトはなんでもいいけど、この画面はCyberduckを使ってSFTP接続してアップロードしている画面。
アップロードが完了したら早速そのアプリケーションを動かしてみたい。
ConoHa VPSにSSH接続してdocker-compose up
SSH接続してdocker-compose upしてみます。
普通に実行できますね。そしたらIPアドレス:8000にアクセスしてみるとエラー。
storageへの権限がないようなのであげておきます。
$ chmod -R 777 storage/
そしたら再度ブラウザからアクセスしてみると画面が出ました。(初期画面は何もいじっていないので、Laravelの初期ページが表示されます。)
DBからデータを取得しているページを確認
DBからデータを取得して表示しているページにアクセスしてみるとエラーですね。
migrateしてないのでmigrateします。
$ docker exec -it アプリケーションのコンテナID bash
$ php artisan migrate
ちゃんとテーブル作成されていますね。mysqlのコンテナに入って適当にデータを入れておきます。
$ docker exec -it mysqlのコンテナID bash
$ mysql -uroot -p
$ use データベース名;
$ insert into テーブル名 (カラム名) values ("挿入したい値");
これで画面を見てみるとちゃんとデータが反映されました。
Docker使えるとやっぱり良いですよね。
まとめ - ConoHa VPS × Docker
ConoHa VPSでサーバー構築の際にDocker選んでDockerで環境を作成したLaravelアプリケーションを試してみたけど、結構簡単にできました。ローカルでDocker使って開発しているなら同じような流れでConoHa VPS上でも行える。
今回試してみたことは以下です。
- ConoHa VPSでサーバー構築時にDockerを選択
- FTPソフトでローカルにあるdocker-composeで作成したアプリケーションをアップロード
- migrationを実行
- docker-compose upで起動
VPSでDocker使いたかったらConoHa VPS安く使えるし悪くない。