目次
概要
今回は、AWS上にDockerを利用できる環境を整備して、実際に手を動かしながらDockerの使い方を習得します。
ディストリビューション付属のパッケージとDocker提供のパッケージ
Docker Engineは、Linuxディストリビューションに含まれています。そのため、yumコマンドやaptコマンドでインストールできます。それとは別にDocker社もDocker Engineのパッケージを提供しています。
ディストリビューション付随のものはyumコマンドやaptコマンドでインストール・アップデートできます。しかし、ディストリビューションによっては、インストールされているDockerのバージョンがまちまちです。一方、Docker提供のパッケージを利用する場合、常に最新版を利用することができます。しかし、アップデートは自分で追う必要があります。保証やセキュリティアップデートなどの運用の面では、ディストリビューションの方が良いです。しかし、学習目的の場合、最新版を使うのが良いので、Docker提供のパッケージが良いです。
(※) yumコマンドはRed Hat Enterprise LinuxやCentOS系におけるパッケージのインストールコマンドです。aptコマンドはUbuntuやFedoraなど、Debian系のパッケージのインストールコマンドです。
Dockerが使えるEC2インスタンスを作る大まかな流れ
- EC2インスタンスの準備
UbuntuがインストールされたEC2インスタンスを用意します。この時、EC2インスタンスのセキュリティグループも設定します。 - EC2インスタンスへのSSH接続
sshコマンドでEC2インスタンスに接続します。 - Docker Engineのインストール
EC2インスタンスにSSH接続した後、いくつかのコマンドを実行して、Docker Engineをインストールします。
作業手順
(※) EC2インスタンスの準備と、EC2インスタンスへのSSH接続は特に説明することがないので省略させていただきます。
手順1:
Docker Engineをインストールします。Ubuntuのパッケージに含まれているDocker Engineではなく、Docker公式から提供されている最新版を使用します。
まず、以下のコマンドで既存のパッケージをアップデートします。
sudo apt-get update
手順2:
次にDocker Engineの実行に必要なパッケージをインストールします。
sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
手順3:
DockerのオフィシャルサイトからGPGキーをダウンロードして登録しておきます。GPGキーとは、ファイルが改ざんされていないことを確認するために使われる鍵のファイルのことです。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
手順4:
Dockerの公式サイトからDocker Engineをダウンロードできるようにするために、Dockerダウンロードサイトをaptリポジトリに追加します。
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
手順5:
パッケージをアップデート後、Docker Engin一式をインストールします。
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
手順6:
Ubuntuの場合、デフォルトではrootユーザーのみDockerを利用できます。rootユーザーに切り替えるのは面倒なので、次のコマンドを実行して、ubuntuというユーザーでも、Dockerを利用できるようにします。
sudo gpasswd -a ubuntu docker
手順7:
一旦切断して、SSHで再接続します。これでインストールは完了です。Docker Engineをインストールすると、「docker」というコマンドが使えます。
ubuntu@ip-10-0-12-65:~$ docker -v Docker version 20.10.21, build baeda1f
参考記事
さわって学ぶクラウドインフラ docker基礎からのコンテナ構築 | 大澤 文孝, 浅居 尚 |本 | 通販 | Amazon