🦍
Docker でコンテナ型仮想化環境を構築する
アプリケーションの実行環境をコンテナ化する Docker Engine と、コンテナの起動構成を管理する Docker Compose の導入方法を説明します。
🛠️ 事前準備
デバイスやソフトウェアは以下を用いる。
- 💻 PC端末(Ubuntu Server)
- 💿 ca-certificates 、💿 curl、💿 gnupg、
- 💿 Docker Engine 、💿 Docker CLI、💿 containerd、
🔌 Docker Compose 、🔌 Docker Buildx、
🌐 Docker Hub
1. スーパーユーザーになる
管理者権限でコマンドを実行できるようにする。
🖥️ terminal
# su を差し上げる
sudo su -
2. apt リポジトリの準備
リポジトリの HTTPS 接続に必要となるパッケージをインストールする。
🖥️ terminal
# パッケージリストの更新
apt-get update
# 必要なパッケージをインストール
apt-get install ca-certificates curl gnupg
パッケージ | 内容 |
---|---|
ca-certificates | CA証明書 |
curl | URLデータ通信 |
gnupg | 暗号化ソフト |
3. Docker リポジトリのセットアップ
Docker 公式で公開されている署名鍵でリポジトリを設定する。
🖥️ terminal
# Docker 公式の GPG キーを取得
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
# リポジトリの追加
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" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
4. パッケージインデックスを更新
レポジトリの書き換え後、最新のパッケージリストを反映させる。
🖥️ terminal
# パッケージインデックスを更新
apt-get update
🎭 作業手順
1. Docker のインストール
Docker Engine、containerd、Docker Compose をインストールする。
🖥️ terminal
# 最新バージョンをインストール
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
パッケージ | 内容 |
---|---|
docker-ce | Docker エンジン(コミュニティ版) |
docker-ce-cli | Docker コマンドラインツール |
containerd.io | コンテナランタイム |
docker-buildx-plugin | Docker コマンドの拡張プラグイン |
docker-compose-plugin | Docker コンテナの一元管理ツール |
2. 一般ユーザーへの権限付与
任意のユーザーに Ddocker コマンドの利用を許可する。
🖥️ terminal
# ユーザーをdockerグループに追加
usermod -aG docker {username}
chmod 666 /var/run/docker.sock
⛳️ 動作確認
1. Docker コンテナの実行
Docker が正常にインストールされていることを確認する。
🖥️ terminal
# コンテナの作成&起動
# ※本コンテナは一連の処理を実行後に自動停止する
docker run hello-world
# イメージを確認
docker images
# コンテナの表示(-a フラグで停止中のコンテナも全て表示)
docker ps -a
# コンテナを削除
# docker ps -a コマンドで確認した CONTAINER ID を指定
docker rm xxxxxxxxxxxx
# イメージを削除
docker rmi hello-world
Discussion