Dockerのインストールと基本設定ガイド

Dockerの基本構成要素

イメージ(image):
Dockerイメージは、コンテナサービスを作成するためのテンプレートのようなものです。例えば、nginxイメージからrunコマンドでnginx01コンテナ(サーバー機能を提供)を作成できます。このイメージから複数のコンテナを作成することが可能で、実際のサービスやアプリケーションはこれらのコンテナ内で実行されます。

コンテナ(container):
Dockerはコンテナ技術を利用して、1つまたは複数のアプリケーションを独立して実行します。コンテナはイメージから作成され、起動、停止、削除などの基本操作が可能です。現時点では、コンテナを簡易的なLinuxシステムとして理解すると良いでしょう。

リポジトリ(repository):
リポジトリはイメージを保管する場所です。パブリックリポジトリとプライベートリポジトリの2種類があります。Docker Hub(デフォルトでは海外のサーバー)やAWS、Google Cloudなどがコンテナレジストリサービスを提供しています。これらのサービスを利用してイメージを高速に取得するためのミラーアクセラレーションを設定することが推奨されています。

Dockerのインストール

環境準備

  1. 基本的なLinuxコマンドの知識
  2. CentOS 7またはUbuntu 20.04以降
  3. リモートサーバーに接続するためのSSHクライアント(任意のツールを使用可能)

環境確認

# システムカーネルが3.10以上であることを確認
[user@server ~]$ uname -r
5.4.0-74-generic

# OSバージョンの確認
[user@server ~]$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"

インストール手順

# 公式ドキュメント: https://docs.docker.com/engine/install/

# Ubuntuの場合のインストールコマンド
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# インストール後、hello-worldイメージを実行してテスト
sudo docker run hello-world

# ダウンロードしたhello-worldイメージを確認
user@ubuntu:~$ docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    d1165f221234   13 months ago   13.3kB

参考:Dockerのアンインストール

# 1. 依存関係をアンインストール
sudo apt-get purge docker-ce docker-ce-cli containerd.io

# 2. リソースを削除
sudo rm -rf /var/lib/docker
# /var/lib/docker はDockerのデフォルト作業パスです

非rootユーザーによるDocker操作

非rootユーザーがsudoなしでDockerを操作できるようにするには、ユーザーをdockerグループに追加します。以下はUbuntuでの手順です:

  1. Dockerがインストールされ、実行中であることを確認します
  2. dockerグループを作成(存在しない場合)し、ユーザーをそのグループに追加します。<your_username>を実際のユーザー名に置き換えてください:
sudo groupadd docker
sudo usermod -aG docker <your_username>
  1. 新しいグループメンバーシップを即時に有効にするため、ログアウトして再ログインするか、以下のコマンドを実行します:
newgrp docker
  1. 正常にdockerグループに追加されたか確認します:
groups

ユーザー名とdockerグループが表示されるはずです。

  1. これで、sudoを使用せずにDockerコマンドを実行できるようになります。以下のコマンドで確認できます:
docker --version

注意:ユーザーをdockerグループに追加すると、そのユーザーにDocker関連の特権が付与されます。セキュリティのため、信頼できるユーザーにのみこれらの権限を付与し、Dockerコンテナへのアクセスを厳しく制限してください。

クラウドプロバイダーのミラーアクセラレーション設定

  1. 使用しているクラウドプロバイダー(AWS、Google Cloud、Azureなど)にログインし、コンテナレジストリサービスを見つけます
  2. ミラーアクセラレーション用の設定情報を取得します
  3. Dockerデーモンの設定ファイルにアクセラレーション設定を追加します

Dockerの動作原理

Dockerはどのように動作するのか?

Dockerはクライアント-サーバー構造のシステムで、Dockerデーモンがホストマシン上で実行されます。クライアントはソケットを介してデーモンにアクセスし、DockerサーバーはDockerクライアントからの指示を受信してコマンドを実行します。

なぜDockerはVMより高速なのか?

  1. Dockerは仮想マシンよりも少ない抽象化レイヤーを持っています
  2. Dockerはホストマシンのカーネルを直接利用しますが、VMはゲストOS全体を必要とします

そのため、新しいコンテナを作成する際、Dockerは仮想マシンのようにOSカーネルを再ロードする必要がなく、ブートプロセスを省略できます。仮想マシンがゲストOSをロードして分単位の時間がかかるのに対し、DockerはホストマシンのOSを直接利用するため、この複雑なプロセスを省略し、秒単位で起動できます。

タグ: Docker コンテナ技術 インストールガイド linux システム管理

6月15日 21:22 投稿