Dockerをインストールする

Dockerをインストールする Linux
Dockerをインストールする

コンテナを使いたいとき、おそらく第一選択にあがるのがDockerです。自分もLinuxを勉強する過程でサーバーをコンテナ環境で立ち上げたりすることが増えてきたので、Dockerのインストール方法をまとめておこうと思います。

Dockerのインストール(Ubuntu公式aptリポジトリ方式)

インストール対象はUbuntuServerです。Dockerの動作を確認するところまでの工程です。

Dockerのインストール方法はいくつかありますが、ここではリポジトリを追加してそこからパッケージをインストールする方法でインストールを行います。

公式のドキュメント等も参考にしてください。

Get Docker
Download and install Docker on the platform of your choice, including Mac, Linux, or Windows.

既存Dockerの削除(存在する場合のみ)

sudo apt-get remove -y docker docker-engine docker.io containerd runc

古いDockerパッケージが残っていると競合するため、念のため削除します。ないことが分かり切ってる場合は、このコマンドを実行する必要はありません。

必要パッケージのインストール

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg

Docker公式リポジトリを追加するために必要なパッケージです。

ca-certificates、gnuupgは認証で使用するパッケージ、curlはHTTPリクエストを送るツールです。今回は認証関係で必要な物をダウンロードするなどで使います。

GPGキー保存用ディレクトリ作成

sudo install -m 0755 -d /etc/apt/keyrings

Docker公式GPGキーを格納するディレクトリを作成します。

Docker公式GPGキーの取得

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | 
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

APTがDocker公式パッケージを信頼できるようにするための署名鍵をダウンロードし、先ほど作ったディレクトリに格納します。これでリポジトリ追加のための認証の用意が整います。

念のため権限を設定しておきます。

sudo chmod a+r /etc/apt/keyrings/docker.gpg

Docker公式リポジトリの追加

echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(. /etc/os-release && echo ${UBUNTU_CODENAME}) stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ubuntuのコードネーム(jammy等)を自動取得してリポジトリを登録します。少し複雑なコマンドなので間違えないようにします。

やっていることは、リポジトリをリストに追加することなので、手動での書き込みでもいいと思います。

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と周辺ツールをインストールします。すべてが必要なわけではありませんが、後々必要になってくるものもあるので、インストールしておくと便利です。

インストールされる主な構成:

  • docker-ce:Docker Engine本体
  • docker-ce-cli:dockerコマンド
  • containerd.io:コンテナランタイム
  • docker-buildx-plugin:拡張ビルド機能
  • docker-compose-plugin:compose機能

動作確認

sudo docker run --rm hello-world

テスト用のコンテナであるhello-worldコンテナを起動します。

コンテナは既存のモノを使う場合、DokcerHubという公式のコンテナ置き場からダウンロードしてくる形になりますが、docker runコマンドでは、ローカルにhello-worldコンテナがなければ、自動的にダウンロードして実行することになります。

以下のような感じで”Hello from Docker!” が表示されれば正常にコンテナが起動しています。

Hello from Docker!
This message shows that your installation appears to be working correctly.

sudoなしでdockerを扱う(任意)

Dockerを扱うとき、いちいちsudoでパスワードを打つのは面倒なので、sudoなしでDockerを扱えるように、グループへ追加しておくと便利です。

sudo usermod -aG docker $USER
newgrp docker

コンテナの状態を確認する

コンテナが稼働しているかの確認です。先ほどのhello-worldコンテナは-rmオプションを付けて起動したので、起動後にすぐコンテナが終了するため、psで確認できません。

#起動中のコンテナの表示
docker ps 
#停止したコンテナも含めた表示
docker ps -a

下記は、nginxをコンテナとして起動している状態でのdocker psの表示です。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a24b230ab00 nginx:stable-alpine "/docker-entrypoint.…" 21 hours ago Up 21 hours 0.0.0.0:80->80/tcp, [::]:80->80/tcp nginx

コンテナを停止する

コンテナを停止するときは、コンテナ名かコンテナIDを指定して停止します。

docker stop <コンテナ名 or コンテナID>

上記のnginxのコンテナだと

docker stop 9a24b230ab00

で停止することができます。

まとめ

Dockerのインストールから起動確認までの工程をまとめてみました。

Linuxでいろんなことをやろうとするとコンテナを使うと便利なんですよね。いろんな環境でDockerのインストールをすることになるかもしれませんので、一連の工程はできる限り覚えておきたいです。

コメント

タイトルとURLをコピーしました