エックスサーバーVPSにDockerをインストールして使う方法!

エックスサーバーVPSでDocker使いたいんだけどどう使えるんだろう?

できればVPSでもDockerを使って環境を作りたいですよね。開発環境もDockerなら本番環境もDockerでやりたいです。

そこで今回はエックスサーバーVPSでDockerを使う方法を書いていきます。

記事の内容
  • エックスサーバーVPSでDockerを使う2つの方法
  • Dockerでアプリケーションを動かす

DockerをVPSで使いたいという場合はどのように使うことができるのか参考にしてみてください。

エックスサーバーVPSでDockerを使っていきましょう。

エックスサーバーVPSでDockerを使う2つの方法

エックスサーバーVPSでDockerを使うとするなら以下の2つの方法が挙げられます。

Dockerを使う方法
  • 立てたサーバーにコマンドでDockerをインストールする
  • Dockerテンプレートを使ってサーバーを立てる

コマンドでインストールするのは分かるけど、テンプレートって何?
選択するだけでDockerが使えるサーバー環境を作成してくれるテンプレートがあるんだよ。

テンプレートはサーバーを作成する時に選ぶことができて、選んだものをすぐに使えるサーバーを作成してくれます。

最初からDockerを使える環境が欲しいとか、コマンドを使ってインストールするのが面倒だっていう場合はDockerを選択してサーバーを作成するといいですよ。

ここからはDockerテンプレートを使った方法とコマンドでDockerをインストールする2つの方法を実際にやっていきます。

Dockerテンプレート使ってサーバーを立てる

まずはXserver VPSでDockerテンプレートを使ってサーバーを立ててみます。サーバーを作成する際にアプリケーションからDockerを選択。

サーバーを立てたらSSH接続してDockerのバージョンを確かめてみます。

$ docker -v
Docker version 20.10.21, build baeda1f
$ docker-compose -v
docker-compose version 1.25.0, build unknown

サーバー立てたらもうdockerもdocker-composeも使えるのか。
そうそう、楽だよね。

確認してみるとDockerのversionが20.10.21で、Docker Engine release notesと照らし合わせるとこの記事を書いている段階で新しめのものが使われています。

バージョンの更新が追従されていくのか分からないけど、こういうのってちょっと古いバージョン使われているイメージあるからとてもありがたい。

ただdocker-composeのバージョンが1.25.0ですね。docker-composeのリポジトリを見てみると2.14.0が最新だからちょっと古い気がする。

OSも確認する

インストールされているOSも確認してみるとこれはUbuntuでした。

$ cat /etc/*release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS"

もしCentOSが良い!とかっていう場合にはDockerテンプレートを使わずに、CentOSを指定してサーバーを作成した後コマンドでDockerをインストールするといいです。

Hello Worldする

hello-worldのimage落として実行してみるとちゃんと動きます。

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:c77be1d3a47d0caf71a82dd893ee61ce01f32fc758031a6ec4cf1389248bb833
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

もちろんdockerコマンド使えるのでちゃんと実行できます。

サーバー作成した瞬間からDocker使えるのが楽

Dockerテンプレートはサーバーを作成する画面で選択するだけで、すぐにDockerを使える状態にしてくれるのでとても楽です。

ただ自分でOSを選ぶことができなかったり、諸々のバージョンが気になったりします。もしそういったことに悩むのならDockerをコマンドでインストールして構築するといいです。

Dockerをコマンドでインストールする

テンプレートを使わずにDockerをコマンドでインストールするようにすれば、OSも自分で選ぶことができます。

テンプレートではUbuntuだったのでここではCentOSを選んでやってみますね。

OSを再インストールする

さっきはDockerテンプレートを使ってサーバーを作成しましたが、一度そのサーバーは壊したいのでOS再インストールを行います。(サーバーを新規で作成する場合には素直にOSを選択すればいいです)

今度はDockerを選択しないでOSからCentOS Stream9を選択です。

これでOSがCentOSのサーバーが作成されます。Dockerは入っていないので、コマンドでインストールしていきますよ。

Docker CE の入手(CentOS 向け)を参考にしつつ進めます。

docker-ceリポをインストール

まずはリポジトリのセットアップ。

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

docker-ceのインストール

Docker CEの最新版をインストールします。

$ sudo yum install docker-ce 

インストールが終わったらバージョンを確認してみます。

$ docker -v
Docker version 20.10.22, build 3a2c30b

最新版がインストールされましたね。

インストールするバージョンを確認したかったら

以下コマンドでインストール可能なバージョンを表示できるので、出てきたものの中からバージョンを指定してインストールするといいでしょう。

$ yum list docker-ce.x86_64  --showduplicates | sort -r
  docker-ce.x86_64            17.06.ce-1.el7.centos             docker-ce-stable

Dockerを起動する

Dockerのインストールは完了したので起動して確かめてみます。

$ sudo systemctl start docker

hello-worldのimageを落として実行してみます。

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:c77be1d3a47d0caf71a82dd893ee61ce01f32fc758031a6ec4cf1389248bb833
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

ちゃんと実行できていますね。これで自由にdockerを使うことができます。

Docker Composeをインストールする

Docker Composeのリリースページから最新版をインストールしたいと思います。最新版がこの記事を書いている今だと2.14.2です。

ダウンロードリンクのアドレスをコピーしてコマンドでインストールするようにします。

$ sudo dnf install wget
$ sudo wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-linux-x86_64

権限を付与しておきます。

$ sudo chmod +x /usr/local/bin/docker-compose

これでバージョンを確認してみましょう。

$ docker-compose -v
Docker Compose version v2.14.2

指定したバージョンがインストールされましたね。これでdocker-composeコマンドを使うことができるようになりました。

docker-composeでアプリケーションを動かす

本当はここで終わろうかと思ったけど、docker-compose入ったなら何かアプリケーション動かしたいですよね。

wordpressでも動かしてみましょう。まずは適当なディレクトリを作成してその中でdocker-compose.ymlを作成します。

$ mkdir app
$ cd app
$ vi docker-compose.yml

docker-compose.ymlには以下を記述。

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "80:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

これで起動させます。

$ docker-compose up

80番ポートはデフォルトだと制限されているのでエックスサーバーVPSの管理画面からONにします。

これでサーバーのIPアドレスにアクセスするとワードプレスのインストール画面が表示されましたね。

docker-composeでワードプレスを動かすことができました。VPSでもちゃんとdocker使えます。

まとめ

エックスサーバーVPSでDockerを使う方法について書きましたが、大きくDockerを使う方法としては2つでした。

Dockerを使う方法
  • Dockerテンプレートを使ってDockerを使う
  • コマンドでサーバーにDockerをインストールする

面倒だったらDockerテンプレートを使って、自分で色々気にしたいならOSは自分で選んでコマンドでインストールするといいです。

アプリケーションをDockerで動かして公開したかったらエックスサーバーVPSの選択肢も大いにあり。