HOME > 技術ドキュメント > Docker 入門(Ubuntu 24.04)
Docker 入門(Ubuntu 24.04 LTS)
Docker は、アプリケーションをコンテナとしてパッケージ化・実行するためのプラットフォームです。
Ubuntu 24.04 LTS への Docker Engine インストールから、基本操作・Dockerfile・docker compose まで解説します。
1. Docker Engine のインストール
Ubuntu 公式リポジトリではなく、Docker 公式リポジトリからインストールします。
# 依存パッケージのインストール
sudo apt update
sudo apt install -y ca-certificates curl
# Docker 公式 GPG キーの追加
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
# Docker Engine をインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# バージョン確認
docker --version
# Docker version 26.x.x, build ...
2. sudo なしで docker を使えるようにする
# 現在のユーザーを docker グループに追加 sudo usermod -aG docker $USER # 一度ログアウトして再ログインすると反映される # 確認 docker run hello-world
3. 基本コマンド
docker pull nginx | イメージをダウンロード |
docker images | ローカルのイメージ一覧 |
docker run -d -p 80:80 nginx | コンテナをバックグラウンドで起動 |
docker ps | 実行中のコンテナ一覧 |
docker ps -a | 停止中を含む全コンテナ一覧 |
docker stop <ID> | コンテナの停止 |
docker rm <ID> | コンテナの削除 |
docker logs <ID> | コンテナのログ表示 |
docker exec -it <ID> bash | コンテナ内でシェルを起動 |
4. Dockerfile の基本
Go 言語 Web アプリのコンテナ化例です。
# Dockerfile FROM golang:1.22-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN go build -o server . # 実行イメージは軽量な alpine を使用 FROM alpine:3.19 WORKDIR /app COPY --from=builder /app/server . EXPOSE 8080 CMD ["./server"]
# ビルドして実行 docker build -t myapp:latest . docker run -d -p 8080:8080 myapp:latest
5. docker compose による複数コンテナ管理
Web アプリ(Go)+ PostgreSQL + Nginx のスタック例です。
# compose.yaml
services:
app:
build: .
restart: always
environment:
- DATABASE_URL=postgres://user:pass@db:5432/mydb
depends_on:
- db
db:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: mydb
volumes:
- pgdata:/var/lib/postgresql/data
nginx:
image: nginx:alpine
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- /etc/ssl/certs:/etc/ssl/certs:ro
depends_on:
- app
volumes:
pgdata:
# 起動(バックグラウンド) docker compose up -d # ログ確認 docker compose logs -f # 停止 docker compose down
6. Docker 環境での SSL 証明書
Docker コンテナで HTTPS を提供する場合も、通常の SSL証明書が必要です。
Nginx コンテナに証明書をマウントして使用するか、ホスト側の Nginx をリバースプロキシとして使う構成が一般的です。
有効期間の短縮(最大47日化)が進むため、証明書の自動更新が重要になります。
エスロジカルの SSL API を使えば、証明書の更新を API で自動化できます。
SSL証明書の購入はこちら / Nginx SSL/TLS 設定
