さくらのVPSでDocker使いたいんだけど、どう使うんだろう?
そんなさくらVPSでDockerを使うっていうことをこの記事ではやっていきたいと思います。
この記事で分かること
- さくらのVPSでサーバーを立てる
- 立てたサーバーにDockerをインストールして動かす
- 立てたサーバーにDocker Composeをインストールして動かす
さくらのVPSでDockerを使って見たい方は参考にしてみてください。
さくらのVPSに登録してない人は登録してからサーバーを立ててDockerをインストールしてみましょう。
さくらのVPSでDockerを使っていきますよ。
さくらのVPSでDockerを使う方法
さくらのVPSでDockerを使う際は以下の手順を踏めば使うことができます。
- VPSサーバーを構築する
- Dockerをインストールする
単純にサーバー立てて、コマンドでDockerをインストールして使えるようにするっていうことですね。
ユーザーが作成したスクリプトも使える
さくらのVPSにはスクリプトといって、さくらインターネットやユーザーが作成したスクリプトを使うことができます。
例えばDockerに関しても検索してみるといくつか見つかりますね。
こういったスクリプトを使えば、ある程度簡単に欲しい環境を作ることができます。
ただユーザーが作成したものが多いので、どんなコードが実行されるのかを見てみてから使ってみるといいですよ。今回はこれらのスクリプトは使わずにDockerを使えるようにします。
さくらのVPSでサーバー構築をする
さくらのVPSに登録したらさっそくサーバーを立てましょう。申し込み方法からの詳しい方法は以下の記事で書いているのでよかったらどうぞ。
-
【さくらのVPSの始め方】申し込んでサーバーを立ててみる
2022/8/6
そんなやり方をこの記事では紹介します。さくらのVPSを使う際にどう申し込めばいいのか画像を交えて書いていきます。 さくらのVPSを使ってサーバーを立てることに興味があったら参考にしてみてください。 さ ...
まずクーポンの表示がある場合、利用クーポンを利用する場合は選択するといいです。
ゾーンは別にどこでもいいかなーっていう感じだけど東京第2にしておきます。
プランは今回は毎月払いの1GBでいきます。メモリやCPUの高いものが欲しいならそれ相応のプランにしましょう。
ストレージは変更手数料0円の50GBにしておきます。
次へボタンを押すとサーバー設定の画面です。サーバー名やサーバー説明は入力しておくと管理画面から見るときに分かりやすいです。
OSは今回CentOSにしておいてバージョンは新しそうなやつを選択。
スタートアップスクリプトと言ってインストール時に実行してくれるスクリプトがあるけど、今回は利用しないとしておきます。
SSHキーはとりあえず登録しないにして進みます。
次へボタンを押すと支払方法を選択することができる。
毎月払いにしてクレジットカードを選択しておきます。
クレジットカード払いにしておくと2週間の無料お試しが利用できるから、もちろん利用するを選んでおきます。
お支払いボタンを押すと完了です。
さくらのVPSで作成したサーバーを確認する
サーバー作成をして少しするとサーバー一覧に作成したサーバーが表示されます。
初期状態は停止しているので、起動してみましょう。
コンソールから確認してみます。
- ユーザー名・・・centos
- パスワード・・・サーバー作成時に設定したパスワード
ちゃんとログインできましたね。
サーバーにDockerをインストールする
サーバーにDockerをインストールしていきます。作業はコンソールを使ってもいいんですが、やりづらいのでSSH接続してやるといいですよ。
以下の記事でSSH接続する方法を紹介しています。
-
さくらのVPSでSSH接続する方法を紹介します。
2022/8/8
そんな疑問を解消するために、この記事ではさくらのVPSで立てたサーバーにSSH接続する方法を書いていきます。 さくらのVPSでサーバーを立ててSSH接続したい方は参考にしてみてください。 さくらのVP ...
DockerのインストールはDocker CEの入手(CentOS向け)を参考にしながらDockerをインストールしていきます。
docker-ceリポをインストール
yumで色々インストールしていきます。
$ 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のインストール
$ sudo yum install docker-ce
# いくつか聞かれるけどyesと答えてインストール
利用可能なバージョンの一覧を確認
$ yum list docker-ce.x86_64 --showduplicates | sort -r
インストール
$ sudo yum install docker-ce.x86_64
起動
$ sudo systemctl start docker
hello-worldを実行する
hello-worldのimageを落としてきて実行してみます。
$ sudo docker run hello-world
無事実行できましたね。
Docker Composeをインストールする
docker-composeも使いたいのでインストールしましょう。。docker-composeのリリースページから最新のバージョンを確認してそれをインストール。
普通にバージョン指定してcurlするとうまく後でコマンドを実行できなかったので、Githubのissueの中から成功したコマンドを実行。
$ sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
権限を設定します。
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
=> Docker Compose version v2.9.0
docker-composeのバージョンも確認できましたね。
docker-composeを試す
docker-composeを試すために、アプリケーションのディレクトリを作成して実行してみます。作成するアプリケーションはComposeを始めましょうを参照します。
Flaskのアプリケーションですね。
アプリケーションのディレクトリを作成
$ mkdir composetest
$ cd composetest
アプリケーションのディレクトリを作ったら必要なファイルたちを作っていきます。
app.py
import time
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)
@app.route('/')
def hello():
count = get_hit_count()
return 'Hello World! I have been seen {} times.\n'.format(count)
requirements.txt
flask
redis
Dockerfile
# syntax=docker/dockerfile:1
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]
docker-compose.yml
version: "3.9"
services:
web:
build: .
ports:
- "8000:5000"
redis:
image: "redis:alpine"
さくらのVPSでポートの許可
すぐにdocker-compose upしたいんだけど、さくらのVPSはデフォルトでポートが制限されているので、今回使う8000番ポートを許可してやります。
[グローバルネットワーク→パケットフィルターを設定]をクリック。
接続可能ポートを追加しましょう。
カスタムをクリックして8000を追加します。
追加ボタンを押して追加です。
設定して完了ですね。
docker-composeを起動して確認
dockerコマンドはデフォルトではroot権限なしには叩けないようになっているので、rootに変更して実行します。
$ su
$ docker-compose up
起動したらサーバーのIPアドレス:8000でアクセスすると画面が表示されました。
docker-compose使ってもちゃんとアプリケーション動きましたね。
まとめ - さくらのVPSでDockerを使う
さくらのVPSでDockerを使うっていうことでこの記事では以下のことをしました。
- CentOSを入れたサーバーを立てる
- Dockerをインストール
- Docker Composeをインストール
docker imageを使ってHello Worldも実行できたし、docker-composeをインストールしてアプリケーションを動かすこともできましたね。
さくらのVPSでDockerを使ってみたかったら試してみるといいでしょう。