メインコンテンツまでスキップ

Fedoraに Docker をインストールする

警告: Docker の dnf ソースを設定していない場合は、dnf を直接使ってDockerをインストールしないでください。

準備

システム要件

Dockerは、以下のバージョンのFedoraオペレーティングシステムをサポートしています。

  • 38
  • 39

古いバージョンのアンインストール

以前のバージョンのDockerは docker または docker-engine と呼ばれていました。古いバージョンをアンインストールしてください。

$ sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

dnfがこれらのパッケージがインストールされていないと報告する場合があります。 /var/lib/docker/ に保存されている画像、コンテナ、ボリューム、ネットワークは、Dockerをアンインストールしても自動的には削除されません。

リポジトリのセットアップ

dnf-plugins-coreパッケージ(DNFリポジトリを管理するコマンドを提供します)をインストールし、リポジトリを設定します。

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

夜間または試験用のDockerバージョンが必要な場合は、次のコマンドを使用します。

$ sudo dnf config-manager --set-enabled docker-ce-test

夜間または試験用のDockerバージョンを無効にするには、以下を使用します。

$ sudo dnf config-manager --set-disabled docker-ce-test

Dockerのインストール

最新のDocker

dnfパッケージインデックスを更新し、docker-ceパッケージをインストールします。

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

GPG キーの承認を求められた場合は、フィンガープリントが 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 と一致することを確認し、一致する場合は承認してください。

このコマンドはDockerをインストールしますが、Dockerは起動しません。また、dockerグループを作成しますが、デフォルトではユーザーをグループに追加しません。

特定のバージョンのDocker

利用可能なバージョンを一覧表示することで、特定のバージョンのDockerをインストールすることもできます。

$ dnf list docker-ce  --showduplicates | sort -r

docker-ce.x86_64 18.06.1.ce-3.fc28 docker-ce-stable

$ sudo dnf -y install docker-ce-18.06.1.ce

便利なスクリプトを使ってインストールする

テストや開発環境では、Dockerは便利なスクリプトを提供しており、Linux ディストリビューションにDockerをインストールできます。このスクリプトは --mirror オプションを使って、国内のソースからインストールすることもできます。

ナイトリービルドをインストールしたい場合は、 test.docker.com からスクリプトを取得してください。

# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

スクリプトを実行すると、自動的にすべての準備作業を行い、最新の安定版のDockerをシステムにインストールします。

Dockerの起動

$ sudo systemctl enable docker
$ sudo systemctl start docker

dockerユーザーグループの確立

デフォルトでは、docker コマンドは Unix ソケット を使ってDocker エンジンと通信します。root ユーザーと docker グループのユーザーのみが Docker エンジンの Unix ソケットにアクセスできます。セキュリティ上の理由から、ほとんどの Linux システムでは root ユーザーを直接使用しません。したがって、より良い方法は、docker を使用する必要があるユーザーを docker ユーザーグループに追加することです。

docker グループを作成します。

$ sudo groupadd docker

現在のユーザーを docker グループに追加します。

$ sudo usermod -aG docker $USER

現在のターミナルからログアウトし、再度ログインしてから、次のテストを実行します。

Dockerが正しくインストールされたかテストする

$ docker run --rm hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

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

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

上記の情報が正しく出力されれば、インストールは成功です。

参考文献