Docker環境の構築
はじめに
Ubuntu に Docker をインストールして、コンテナを動かせる状態にするまでの手順をまとめます
Docker を触るのが初めてでも理解しやすいように、まず用語(Docker / コンテナ / イメージ)をざっくり説明してから進めます
この記事のゴールは「Docker 環境の構築」です(特定のアプリを Docker で動かす話ではありません)
Dockerとは
Docker は、アプリを 「コンテナ」 という単位で動かすための仕組み(ツール群)です
アプリの実行に必要なもの(ライブラリや設定など)をまとめて扱えるので、環境差分によるトラブルを減らしやすくなります
Docker を使うときの登場人物は大体この3つです
- Docker Engine(デーモン): バックグラウンドで動いてコンテナを起動・停止する本体
- Docker CLI:
dockerコマンド(エンジンに指示するための操作口) - Docker Registry: イメージの置き場(Docker Hub など)
コンテナとは
コンテナは、ざっくり言うと 「隔離された実行環境」 です
「別マシンのように見えるプロセス」を作って、その中でアプリを動かします
ポイントはここです
- コンテナは VM(仮想マシン)ではない(ホストOSのカーネルを共有して動く)
- その分、起動が速くて軽い
- ただし、コンテナの中で作ったデータは 基本的に消えやすい(必要ならボリュームで永続化する)
Docker Imageとは
Docker Image(イメージ)は、コンテナの元になる 「実行環境のテンプレート」 です
イメージそのものは読み取り専用で、イメージから起動された実体がコンテナです
- イメージ: 料理のレシピ(テンプレート)
- コンテナ: できあがった料理(動いている実体)
イメージは手元で作る(docker build)こともできますし、配布されているものを取得(docker pull)して使うこともできます
Dockerのインストール(Ubuntu 24.04 LTS)
今回は、公式のリポジトリ(download.docker.com)を追加して Docker Engine を入れます
前提: sudo できるユーザーで作業します
1) 既存のDocker関連パッケージを削除(入っている場合)
sudo apt-get remove -y docker docker-engine docker.io containerd runc
2) 事前パッケージをインストール
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
3) Docker公式GPGキーの追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
4) Docker公式リポジトリを追加
UBUNTU_CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME")
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu ${UBUNTU_CODENAME} stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5) Docker Engineをインストール
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-compose-plugin まで入れているので、Compose は docker compose ... の形式で使えます
動作確認
バージョン確認
docker --version
hello-worldで確認
初回は権限の都合で sudo docker ... にしています
sudo docker run hello-world
Hello from Docker! が表示されれば OK です
実際にコンテナを起動してみる
次の例は、ubuntu:24.04 イメージを取得して(初回はダウンロードされます)、その中で bash を起動します
抜けるときは exit です
sudo docker run --rm -it ubuntu:24.04 bash
(任意)sudoなしでdockerを使う(dockerグループ)
毎回 sudo を付けるのが面倒な場合は、ユーザーを docker グループに追加します
sudo usermod -aG docker "$USER"
追加後は、ログアウト→ログイン(または再起動)で反映されます
すぐ試したい場合は一時的に newgrp でも OK です
newgrp docker
docker run --rm hello-world
※ docker グループは実質 root 権限相当の操作ができるため、共有マシンでは付与先に注意します
最低限覚えるDockerコマンド
環境構築後に「まず困らない」ための最小セットです
- イメージ一覧:
docker images - コンテナ一覧:
docker ps/docker ps -a - 起動:
docker run ... - 停止:
docker stop <name> - ログ:
docker logs -f <name> - コンテナ削除:
docker rm <name> - イメージ削除:
docker rmi <image> - Compose(プラグイン):
docker compose version
つまずきポイント
permission denied が出る
sudo docker ...で実行する
またはdockerグループ追加後にログインし直してからdocker ...を実行します
Cannot connect to the Docker daemon が出る
Docker Engine が起動していない可能性があります
sudo systemctl enable --now docker
sudo systemctl status docker --no-pager
まとめ
Ubuntu に Docker(Engine / Buildx / Compose)を入れて、コンテナを動かすところまで確認しました
次は、適当なイメージ(例: ubuntu:24.04)を docker run --rm -it ... で動かして、コンテナの操作感に慣れるのがおすすめです