Docker 導入
完全に新しい分野と横目で見ていたコンテナなりDockerという世界。
絶対導入をおすすめですね。
導入時間の短縮、環境自体のモビリティ(移動性)、災害対応向けシステムの構築の用意性、たくさんの観点で導入をおすすめします。
場合によっては、パブリッククラウドへの移行やパブリッククラウド間の移動も簡単になります。(実質、依存パッケージの個別のインストール作業なりが不要となります)
今後、性能、セキュリティなどを見ていこうと思いますが、ドキュメントなりで調べている範囲では、アプリケーションやサービスを提供する上で、必要なもののみを独自環境(コンテナ)に導入する方法は、非常に理にかなっていると思います。
そりゃ、世界で広がる理由が分かります。
前提ソフトウェアのインストール
前提ソフトウェアをインストールします。
- apt-transport-https
- ca-certificates
- curl
- software-properties-common
root@Intel-NUC:~# apt update -y root@Intel-NUC:~# apt install -y apt-transport-https ca-certificates curl software-properties-common パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 apt-transport-https はすでに最新バージョン (1.2.32) です。 ca-certificates はすでに最新バージョン (20170717~16.04.2) です。 software-properties-common はすでに最新バージョン (0.96.20.9) です。 software-properties-common は手動でインストールしたと設定されました。 以下のパッケージが自動でインストールされましたが、もう必要とされていません: apt-clone archdetect-deb cifs-utils dmeventd dmraid gir1.2-clutter-1.0 gir1.2-clutter-gst-3.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2-gtkclutter-1.0 gir1.2-networkmanager-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0 kpartx kpartx-boot libdbusmenu-gtk4 libdebian-installer4 libdevmapper-event1.02.1 libdmraid1.0.0.rc16 libllvm5.0 liblvm2app2.2 liblvm2cmd2.02 libparted-fs-resize0 libqpdf17 libreadline5 linux-headers-oem linux-signed-image-generic-hwe-16.04 linux-signed-image-oem localechooser-data lvm2 python3-icu python3-pam rdate snapd-login-service user-setup これを削除するには 'apt autoremove' を利用してください。 以下のパッケージが新たにインストールされます: curl アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 139 kB のアーカイブを取得する必要があります。 この操作後に追加で 340 kB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 curl amd64 7.47.0-1ubuntu2.14 [139 kB] 139 kB を 0秒 で取得しました (1,227 kB/s) 以前に未選択のパッケージ curl を選択しています。 (データベースを読み込んでいます ... 現在 222284 個のファイルとディレクトリがインストールされています。) .../curl_7.47.0-1ubuntu2.14_amd64.deb を展開する準備をしています ... curl (7.47.0-1ubuntu2.14) を展開しています... man-db (2.7.5-1) のトリガを処理しています ... curl (7.47.0-1ubuntu2.14) を設定しています ... root@Intel-NUC:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - OK
Dockerレポジトリを追加
Dockerレポジトリを追加し、パッケージリストの更新を行います。
root@Intel-NUC:~# sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" root@Intel-NUC:~# root@Intel-NUC:~# apt update -y ヒット:1 http://jp.archive.ubuntu.com/ubuntu xenial InRelease ー・牴蜑・ http://jp.archive.ubuntu.com/ubuntu xenial-updates InRelease ヒット:3 http://jp.archive.ubuntu.com/ubuntu xenial-backports InRelease 取得:4 https://download.docker.com/linux/ubuntu xenial InRelease [66.2 kB] 取得:5 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages [11.6 kB] 取得:6 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB] 無視:7 http://oem.archive.canonical.com/updates xenial-dawson InRelease 無視:8 http://oem.archive.canonical.com/updates xenial-oem InRelease ヒット:9 http://oem.archive.canonical.com/updates xenial-dawson Release ヒット:11 http://oem.archive.canonical.com/updates xenial-oem Release 187 kB を 1秒 で取得しました (133 kB/s) パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 パッケージはすべて最新です。
Docker-ceのインストール
root@Intel-NUC:~# apt install -y docker-ce パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: apt-clone archdetect-deb cifs-utils dmeventd dmraid gir1.2-clutter-1.0 gir1.2-clutter-gst-3.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2-gtkclutter-1.0 gir1.2-networkmanager-1.0 gir1.2-nma-1.0 gir1.2-timezonemap-1.0 gir1.2-xkl-1.0 kpartx kpartx-boot libdbusmenu-gtk4 libdebian-installer4 libdevmapper-event1.02.1 libdmraid1.0.0.rc16 libllvm5.0 liblvm2app2.2 liblvm2cmd2.02 libparted-fs-resize0 libqpdf17 libreadline5 linux-headers-oem linux-signed-image-generic-hwe-16.04 linux-signed-image-oem localechooser-data lvm2 python3-icu python3-pam rdate snapd-login-service user-setup これを削除するには 'apt autoremove' を利用してください。 以下の追加パッケージがインストールされます: aufs-tools cgroupfs-mount containerd.io docker-ce-cli git git-man liberror-perl pigz 提案パッケージ: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn 以下のパッケージが新たにインストールされます: aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli git git-man liberror-perl pigz アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 0 個。 89.2 MB のアーカイブを取得する必要があります。 この操作後に追加で 409 MB のディスク容量が消費されます。 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 pigz amd64 2.3.1-2 [61.1 kB] 取得:2 https://download.docker.com/linux/ubuntu xenial/stable amd64 containerd.io amd64 1.2.10-3 [19.9 MB] 取得:3 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 aufs-tools amd64 1:3.2+20130722-1.1ubuntu1 [92.9 kB] 取得:4 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 cgroupfs-mount all 1.2 [4,970 B] 取得:5 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 liberror-perl all 0.17-1.2 [19.6 kB] 取得:6 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git-man all 1:2.7.4-0ubuntu1.6 [736 kB] 取得:7 https://download.docker.com/linux/ubuntu xenial/stable amd64 docker-ce-cli amd64 5:19.03.4~3-0~ubuntu-xenial [42.4 MB] 取得:8 https://download.docker.com/linux/ubuntu xenial/stable amd64 docker-ce amd64 5:19.03.4~3-0~ubuntu-xenial [22.8 MB] 取得:9 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git amd64 1:2.7.4-0ubuntu1.6 [3,176 kB] 89.2 MB を 3秒 で取得しました (23.0 MB/s) 以前に未選択のパッケージ pigz を選択しています。 (データベースを読み込んでいます ... 現在 222291 個のファイルとディレクトリがインストールされています。) .../pigz_2.3.1-2_amd64.deb を展開する準備をしています ... pigz (2.3.1-2) を展開しています... 以前に未選択のパッケージ aufs-tools を選択しています。 .../aufs-tools_1%3a3.2+20130722-1.1ubuntu1_amd64.deb を展開する準備をしています ... aufs-tools (1:3.2+20130722-1.1ubuntu1) を展開しています... 以前に未選択のパッケージ cgroupfs-mount を選択しています。 .../cgroupfs-mount_1.2_all.deb を展開する準備をしています ... cgroupfs-mount (1.2) を展開しています... 以前に未選択のパッケージ containerd.io を選択しています。 .../containerd.io_1.2.10-3_amd64.deb を展開する準備をしています ... containerd.io (1.2.10-3) を展開しています... 以前に未選択のパッケージ docker-ce-cli を選択しています。 .../docker-ce-cli_5%3a19.03.4~3-0~ubuntu-xenial_amd64.deb を展開する準備をしています ... docker-ce-cli (5:19.03.4~3-0~ubuntu-xenial) を展開しています... 以前に未選択のパッケージ docker-ce を選択しています。 .../docker-ce_5%3a19.03.4~3-0~ubuntu-xenial_amd64.deb を展開する準備をしています ... docker-ce (5:19.03.4~3-0~ubuntu-xenial) を展開しています... 以前に未選択のパッケージ liberror-perl を選択しています。 .../liberror-perl_0.17-1.2_all.deb を展開する準備をしています ... liberror-perl (0.17-1.2) を展開しています... 以前に未選択のパッケージ git-man を選択しています。 .../git-man_1%3a2.7.4-0ubuntu1.6_all.deb を展開する準備をしています ... git-man (1:2.7.4-0ubuntu1.6) を展開しています... 以前に未選択のパッケージ git を選択しています。 .../git_1%3a2.7.4-0ubuntu1.6_amd64.deb を展開する準備をしています ... git (1:2.7.4-0ubuntu1.6) を展開しています... man-db (2.7.5-1) のトリガを処理しています ... libc-bin (2.23-0ubuntu11) のトリガを処理しています ... ureadahead (0.100.0-19.1) のトリガを処理しています ... systemd (229-4ubuntu21.22) のトリガを処理しています ... pigz (2.3.1-2) を設定しています ... aufs-tools (1:3.2+20130722-1.1ubuntu1) を設定しています ... cgroupfs-mount (1.2) を設定しています ... containerd.io (1.2.10-3) を設定しています ... docker-ce-cli (5:19.03.4~3-0~ubuntu-xenial) を設定しています ... docker-ce (5:19.03.4~3-0~ubuntu-xenial) を設定しています ... liberror-perl (0.17-1.2) を設定しています ... git-man (1:2.7.4-0ubuntu1.6) を設定しています ... git (1:2.7.4-0ubuntu1.6) を設定しています ... libc-bin (2.23-0ubuntu11) のトリガを処理しています ... ureadahead (0.100.0-19.1) のトリガを処理しています ... systemd (229-4ubuntu21.22) のトリガを処理しています ...
aptコマンド用のレポジトリを設定
ここで apt
コマンド用のリポジトリを設定しますが、dockerではstable
、edge
、test
が公開されています。
stable
として、以下のように設定しています。
x86_64
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
これで、Dockerが利用可能になります。
Docker導入にあたり、管理の便利なDocker Composeを導入したので、
明日の記事で、Docker Compseの導入方法を紹介します。