Skip to Content
ドキュメント開発ドッカー/ポッドマン

Docker / Podman

この記事では、Ubuntu 26.04 に Docker および Podman コンテナー テクノロジをインストールして使用する方法について説明します。

Docker CE のインストール

古いバージョンを削除する

sudo apt remove docker docker-engine docker.io containerd runc 2>/dev/null

Docker CE をインストールする

# Install dependencies sudo apt update sudo apt install ca-certificates curl gnupg -y # Add Docker official GPG key 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 # Add Docker repository echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

sudo を使用せずに Docker を使用します

# Add current user to the docker group sudo usermod -aG docker $USER # Apply group changes (or log out and back in) newgrp docker

インストールの検証

docker --version docker compose version docker run hello-world

Docker ミラーの構成 (中国)

/etc/docker/daemon.json を編集します:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.xuanyuan.me" ] } EOF # Restart Docker sudo systemctl daemon-reload sudo systemctl restart docker

Docker の基本

画像の操作

# Pull an image docker pull ubuntu:26.04 docker pull nginx:latest # List local images docker images # Remove an image docker rmi nginx:latest # Build an image docker build -t myapp:latest . # Clean up unused images docker image prune -a

コンテナオペレーション

# Run a container docker run -d --name mynginx -p 8080:80 nginx # List running containers docker ps # List all containers docker ps -a # Enter a container docker exec -it mynginx bash # View container logs docker logs -f mynginx # Stop and remove a container docker stop mynginx docker rm mynginx # Clean up all stopped containers docker container prune

ボリューム

# Create a volume docker volume create mydata # Mount a volume docker run -d -v mydata:/data --name mycontainer ubuntu # Mount a host directory docker run -d -v /home/user/data:/data --name mycontainer ubuntu # List volumes docker volume ls docker volume inspect mydata

Docker 作成

Docker Compose は、マルチコンテナ アプリケーションの定義と実行に使用されます。

例: Web アプリ + データベース

compose.yaml を作成します。

services: web: image: nginx:latest ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html depends_on: - db db: image: postgres:18 environment: POSTGRES_DB: mydb POSTGRES_USER: admin POSTGRES_PASSWORD: secret volumes: - pgdata:/var/lib/postgresql/data ports: - "5432:5432" redis: image: redis:7-alpine ports: - "6379:6379" volumes: pgdata:

一般的な作成コマンド

# Start all services docker compose up -d # Check service status docker compose ps # View logs docker compose logs -f web # Stop all services docker compose down # Stop and remove volumes docker compose down -v # Rebuild and start docker compose up -d --build

Dockerファイルの書き込み

典型的なマルチステージ ビルドの例:

# Build stage FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # Runtime stage FROM node:22-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules EXPOSE 3000 CMD ["node", "dist/index.js"]

Podman: Docker の代替

Podman は、Docker CLI と互換性のあるデーモンレス コンテナ エンジンです。

Podman をインストールする

sudo apt install podman -y

インストールを確認します。

podman --version podman info

Podman の基本

Podman コマンドは、Docker とほぼ同じです。

# Pull and run a container podman pull docker.io/library/nginx podman run -d --name mynginx -p 8080:80 nginx # List containers podman ps # Stop and remove podman stop mynginx podman rm mynginx

Podman と Docker の違い

  • デーモンレス: Podman はバックグラウンド デーモン プロセスを必要としません
  • ルートレス: Podman はデフォルトでコンテナを通常のユーザーとして実行するため、セキュリティが強化されます。
  • ポッドのサポート: Podman は、ポッドの概念をネイティブにサポートします (Kubernetes ポッドと同様)
  • 互換性: Docker コマンドの大部分は、Podman に直接置き換えることができます。

Docker 互換性エイリアスのセットアップ

echo 'alias docker=podman' >> ~/.bashrc source ~/.bashrc

Podman 作成

# Install podman-compose (prefer apt or pipx to avoid the PEP 668 restriction) sudo apt install -y podman-compose # Or: sudo apt install -y pipx && pipx install podman-compose # Usage is the same as docker compose podman-compose up -d podman-compose down

Docker システムメンテナンス

# Check disk usage docker system df # Full cleanup (use with caution) docker system prune -a --volumes # Check Docker service status sudo systemctl status docker

Docker と Podman にはそれぞれ長所があります。 Docker はより成熟したエコシステムを備えていますが、Podman はより優れたセキュリティを提供し、デーモンを必要としません。ニーズに基づいて選択してください。

よくある質問

Docker と Podman のどちらを選択すればよいですか?

初心者の場合、またはチームと共同作業する必要がある場合は、より成熟したエコシステム、豊富なドキュメント、および広範なコミュニティ サポートを備えた Docker をお勧めします。セキュリティを優先する場合、または root 権限のない環境で作業する場合は、デーモンを必要とせず、デフォルトで非 root ユーザーとして実行されるため、Podman を選択することをお勧めします。

Docker の Snap バージョンを使用できますか?

Ubuntu リポジトリの docker.io パッケージと、Docker の Snap バージョンは使用できますが、通常、バージョンが公式の Docker CE より遅れており、互換性の問題が発生する可能性があります。最新バージョンと最高の互換性を得るには、この記事で説明されているように、公式 Docker リポジトリから Docker CE をインストールすることをお勧めします。

Docker を使用するには sudo が必要ですか?

デフォルトでは、Docker コマンドを実行するには sudo 権限が必要です。ユーザーを docker グループに追加すると、sudo を使用せずに Docker を使用できます (sudo usermod -aG docker $USER を実行してからログアウトし、再度ログインします)。 docker グループに所属することは root 権限を持つことと同等であるため、マルチユーザー環境では注意が必要です。

関連記事