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/
上記の情報が正しく出力されれば、インストールは成功です。