Docker はアプリとその実行に必要なものすべてを、どこでも同じように動くコンテナにパッケージします — VPS でサービスをセルフホストする最もクリーンな方法です。Ubuntu と Debian での唯一の落とし穴は、ディストロ自身のリポジトリにあるバージョンがしばしば古く、現代的な Compose プラグインが付属していないことです。代わりに Docker の公式リポジトリ からインストールしましょう。以下が全工程です。
1. Docker の公式リポジトリを設定(Ubuntu)
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2. Docker Engine と Compose をインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3. 実行中で起動時に有効化されていることを確認
sudo systemctl enable --now docker
sudo docker run --rm hello-world
hello-world コンテナはダウンロードされ、成功メッセージを表示して終了します — エンジンが動作している証拠です。
4.(オプション)sudo なしで Docker を実行
sudo usermod -aG docker $USER
# グループが反映されるようログアウトしてログインし直す
これは信頼できるユーザーにのみ行ってください — docker グループへのアクセスは事実上ホスト上の root 権限です。
実際の簡単なコンテナ
docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# http://YOUR.SERVER.IP:8080 にアクセス
--restart unless-stopped が、再起動後にコンテナを復帰させる設定です。
正直な注意
- 最新版には公式リポジトリを使うこと; ディストロの
docker.ioパッケージは古く、Compose プラグインを欠いています。 - 公開するポートだけを開くこと。 コンテナの
-p 8080:80は 8080 を公開します — Docker をUFW ファイアウォールと組み合わせましょう。 - サーバーのサイズはコンテナに合わせること、軽量な Docker 自体に合わせるのではなく。
次のステップ
Docker をインストールすれば、ほぼ何でもセルフホストできます。1 つの IP で複数サービスをセルフホスト、または RustDesk リモートデスクトップサーバーやUptime Kuma 監視のような具体的な Docker 構築例を参照してください。ドメインと HTTPS を前段に置くには、nginx リバースプロキシの設定方法を参照してください。
コメント
まだコメントはありません。最初になりましょう。