VPSでDockerをインストールしてコンテナを運用する方法【初心者向け】
VPSにDockerをインストールし、docker-composeでコンテナを運用する手順を解説。ポートやボリュームの設定もカバー。初心者でも安心のチュートリアル。
はじめに
Dockerは、アプリケーションをコンテナとして実行できるプラットフォームです。VPS(仮想プライベートサーバー)上でDockerを使うと、環境の差異を気にせずにアプリをデプロイでき、スケーラビリティも向上します。このチュートリアルでは、VPSにDockerをインストールし、docker-composeを使ってコンテナを運用する方法をステップバイステップで解説します。
前提条件
1. Dockerのインストール
1.1 パッケージの更新と依存関係のインストール
SSHでVPSにログインし、以下のコマンドを実行します。
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
1.2 Docker公式GPGキーの追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
1.3 リポジトリの追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1.4 Dockerのインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
1.5 Dockerサービスの起動と自動起動設定
sudo systemctl start docker
sudo systemctl enable docker
1.6 インストールの確認
sudo docker run hello-world
「Hello from Docker!」と表示されれば成功です。
1.7 ユーザーをdockerグループに追加(sudo不要で実行)
sudo usermod -aG docker $USER
ログアウトして再ログインすると、sudoなしでdockerコマンドが使えます。
2. docker-composeのインストール
Docker Composeは、複数のコンテナを定義・実行するためのツールです。Docker Engine 20.10以降ではプラグインとして利用可能です。
2.1 インストール確認
docker compose version
バージョンが表示されればOKです。もしインストールされていない場合は、以下の手順でインストールします。
sudo apt update
sudo apt install docker-compose-plugin
3. コンテナの基本操作
3.1 イメージの取得とコンテナの実行
docker pull nginx:latest
docker run -d --name my-nginx -p 8080:80 nginx:latest
-d: バックグラウンド実行--name: コンテナ名-p 8080:80: ホストの8080番ポートをコンテナの80番ポートにマッピングブラウザで http:// にアクセスするとNginxのデフォルトページが表示されます。
3.2 コンテナの一覧表示
docker ps
docker ps -a # 停止中のコンテナも表示
3.3 コンテナの停止と削除
docker stop my-nginx
docker rm my-nginx
4. ボリュームの利用
ボリュームを使うと、コンテナ内のデータをホストに永続化できます。
4.1 ボリュームの作成とマウント
docker volume create nginx-data
docker run -d --name my-nginx -p 8080:80 -v nginx-data:/usr/share/nginx/html nginx:latest
これで、/usr/share/nginx/html の内容がボリュームに保存されます。
4.2 バインドマウント
ホストのディレクトリを直接マウントすることもできます。
docker run -d --name my-nginx -p 8080:80 -v /path/on/host:/usr/share/nginx/html nginx:latest
5. docker-composeによる複数コンテナの管理
5.1 docker-compose.ymlの作成
例として、WordPressとMySQLを起動する構成を作ります。
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:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
5.2 コンテナの起動
docker compose up -d
ブラウザで http:// にアクセスするとWordPressのセットアップ画面が表示されます。
5.3 コンテナの停止と削除
docker compose down
ボリュームも削除する場合は -v オプションを付けます。
6. ポート設定の注意点
sudo ufw allow 8080/tcp
sudo ufw allow 8000/tcp
7. ボリュームの管理
7.1 ボリュームの一覧
docker volume ls
7.2 ボリュームの詳細
docker volume inspect <volume_name>
7.3 不要なボリュームの削除
docker volume prune
8. コンテナのログ確認とトラブルシューティング
docker logs <container_name>
docker logs -f <container_name> # リアルタイム表示
*この記事は実際のVPS環境での構築経験に基づいています。料金・スペックは執筆時点のものであり、最新情報は各事業者の公式サイトでご確認ください。*
まとめ
このチュートリアルでは、VPSにDockerをインストールし、docker-composeを使ってコンテナを運用する基本的な手順を解説しました。ポートやボリュームの設定を理解することで、より柔軟なアプリケーションのデプロイが可能になります。ぜひ実際に試してみてください。