0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker環境の構築

0
Posted at

はじめに

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 まで入れているので、Docker Composedocker 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 ... で動かして、コンテナの操作感に慣れるのがおすすめです。


この記事はReo's Tech Blogの同名記事にも掲載しています。

Reo's Tech Blogでは、個人開発や日々の技術的な取り組みを記録しています。興味がありましたら、ほかの記事もご覧ください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?