前回はDockerの概要について話をしました。今回は、早速Dockerを使うべく、Dockerをインストールする手順を記載します。
なお、本記事では1環境でのみDockerをインストールしますが、多くの場合、クライアントPCおよびサーバの両方にDockerをインストールすることが想定されます。例えば、開発環境で動作確認したものをそのまま本番環境で利用するといったユースケースを想定しています。
目次[非表示]
Dockerをインストールする前に
DockerはどのOSにインストールできるのでしょうか。Dockerのダウンロードサイトを見ると現時点では、様々なLinux、Apple macOS、Windows OSに対応しており、幅広く利用できることが分かります。
ちなみに、Amazon Web Services (AWS)、Microsoft Azure、DigitalOceanなどのパブリッククラウド上でも起動することが可能です。
ところで、DockerはLinux上で起動するため、Linuxにインストールする場合は簡単ですが、WindowsやmacOSにインストールする場合はLinuxに比べて追加の設定が必要になるかもしれません。本記事では、以前構築したUbuntu Server 20.04を使ってDockerをインストールしたいと思います。
Linux (Ubuntu Server 20.04)にDockerをインストール
Dockerのインストール
Ubuntu
Server上のコンソールを起動します。docker
コマンドを使ってDockerのインストール状況を確認します。
docker Command 'docker' not found, but can be installed with: sudo snap install docker # version 19.03.11, or sudo apt install docker.io # version 19.03.8-0ubuntu1.20.04.1 See 'snap info docker' for additional versions.
コマンドの実行結果を確認するとdockerはインストールされてないようです。ヘルプとしてapt
コマンドを用いたdockerのインストール方法が表示されました。この方法でもdockerのインストールができますが、ここではcurl
コマンドでdockerのWebサイトから最新バージョンのパッケージを取得しインストールするためのスクリプトをダウンロードし実行する方法を記載します。
curl -sSL https://get.docker.com/ | sh
# Executing docker install script, commit: 3d8fe77c2c46c5b7571f94b42793905e5b3e42e4 + sudo -E sh -c apt-get update -qq >/dev/null [sudo] password for xxxxx: + sudo -E sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null + sudo -E sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | apt-key add -qq - >/dev/null Warning: apt-key output should not be parsed (stdout is not a terminal) + sudo -E sh -c echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" > /etc/apt/sources.list.d/docker.list + sudo -E sh -c apt-get update -qq >/dev/null + [ -n ] + sudo -E sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null + sudo -E sh -c docker version Client: Docker Engine - Community Version: 20.10.2 API version: 1.41 Go version: go1.13.15 Git commit: 2291f61 Built: Mon Dec 28 16:17:43 2020 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.2 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 8891c58 Built: Mon Dec 28 16:15:19 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.3 GitCommit: 269548fa27e0089a8b8278fc4fc781d7f65a939b runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.19.0 GitCommit: de40ad0 If you would like to use Docker as a non-root user, you should now consider adding your user to the "docker" group with something like: sudo usermod -aG docker xxxxx Remember that you will have to log out and back in for this to take effect! WARNING: Adding a user to the "docker" group will grant the ability to run containers which can be used to obtain root privileges on the docker host. Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface for more information.
インストールされたことを確認するために、docker version
コマンドを実行します。ヘルプで表示されたapt
コマンドの方法ではバージョン19.03.8をインストールする案内となっていましたが、DockerのWebサイトにあるスクリプトを実行した場合は最新のバージョン20.10.2がインストールされたようです。
docker version Client: Docker Engine - Community Version: 20.10.2 API version: 1.41 Go version: go1.13.15 Git commit: 2291f61 Built: Mon Dec 28 16:17:43 2020 OS/Arch: linux/amd64 Context: default Experimental: true Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version: dial unix /var/run/docker.sock: connect: permission denied
Docker関連の有用ツールのインストール
Dockerをより有効活用するためにDocker MachineとDocker Composeというツールをインストールします。念のためにUbuntu Server 20.04上にインストールされているか確認したところ、どちらのツールもインストールされていませんでしたので、早速インストールしてみましょう。
docker-machine Command 'docker-machine' not found, but can be installed with: sudo snap install docker
docker-compose Command 'docker-compose' not found, but can be installed with: sudo snap install docker # version 19.03.11, or sudo apt install docker-compose # version 1.25.0-1 See 'snap info docker' for additional versions.
Docker Machine
まずは現時点の最新バージョンをDocker MachineプロジェクトのGitHubのページで確認します。以下の図の通り、v0.16.2となります。
同じWebページ上で、少し下にスクロールすると、Linux向けのインストールコマンドが記載されています。
curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
上記コマンドを実行してみましょう。
curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && > chmod +x /tmp/docker-machine && > sudo cp /tmp/docker-machine /usr/local/bin/docker-machine % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 651 100 651 0 0 667 0 --:--:-- --:--:-- --:--:-- 667 100 32.6M 100 32.6M 0 0 1322k 0 0:00:25 0:00:25 --:--:-- 2530k [sudo] password for xxxxx: $ docker-machine version docker-machine version 0.16.2, build bd45ab13
バージョンv0.16.2のDocker Machineがインストールされたことが確認できました。
Docker Compose
Docker Machineと同様に、現時点の最新バージョンをDocker ComposeプロジェクトのGitHubのページで確認します。以下の図の通り、1.28.0-rc2となります。
こちらは同じWebページ上にLinux向けのインストールコマンドが記載されていませんでした。以下のコマンド例を参考にし、バージョン番号(1.28.0-rc2)を最新バージョンに変えてください。
curl -L https://github.com/docker/compose/releases/download/1.28.0-rc2/docker-compose-`uname -s`-`uname -m` >/tmp/docker-compose && chmod +x /tmp/docker-compose && sudo cp /tmp/docker-compose /usr/local/bin/docker-compose
それでは上記コマンドを実行してみましょう。
curl -L https://github.com/docker/compose/releases/download/1.28.0-rc2/docker-compose-`uname -s`-`uname -m` >/tmp/docker-compose && > chmod +x /tmp/docker-compose && > sudo cp /tmp/docker-compose /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 651 100 651 0 0 579 0 0:00:01 0:00:01 --:--:-- 579 100 12.2M 100 12.2M 0 0 1462k 0 0:00:08 0:00:08 --:--:-- 2280k $ docker-compose version docker-compose version 1.28.0-rc2, build f1e3c356 docker-py version: 4.4.1 CPython version: 3.9.0 OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
バージョン1.28.0-rc2のDocker Composeがインストールされたことが確認できました。
おわりに
LinuxにDockerと関連するツール(Docker MachineとDocker Compose)をインストールしました。Linuxの場合は非常に簡単にインストールできましたね。
しかしながら、実際の開発現場では、Windowsでアプリケーションを開発することがまだまだ多いと思います。Windowsの場合はHyper-Vに依存した設定となったり、VMWare WorkstationのようにHyper-V以外の仮想ソフトをインストールしていたり、Hyper-Vを持たない古いWindows OSを使うことも想定され、WindowsでDockerを利用できるようにするためには手間がかかります。別の機会に記事として書いてみようと思います。