AWS:EC2インスタンス(Ubuntu)にDocker環境を構築する

AWS

こんにちはますのです。
DevOpsに若干の関心を抱いている今日この頃。
コンテナ技術やDockerについて聞いたことはあるものの、実際に触ったことが無いため少しお触りしておきたいなと重い腰を上げます。

兎にも角にもまずは環境構築をと思いますので、構築について備忘を残したいと思います。
Dockerの参考として購入していたこの書籍を参考にこれから色々お触りしていきたいなと。

Docker環境構築の概要

まずは環境をさくっと構築です。

  • AWS:EC2インスタンスへ構築
  • インスタンスタイプ:t2.micro
  • 容量:20GB
  • OS:Ubuntu 18.04.5
  • パブリックネットワークに配置
  • セキュリティグループ:許可IPは自端末のグローバルIPからのみに絞る
今回参考にした書籍では、セキュリティグループで許可するIPを「0.0.0.0/0」としていました。
わたしはパブリックネットワークに配置するため、念には念を入れて自端末のグローバルIPからの通信のみを許可としました。認証鍵の流出が無い限りサーバ内をいたずらされないはずですが、爆死する恐怖から検証する際は極限まで絞りたい思いです。
はい、さくっとAWSにUbuntuサーバを構築します。
ECSやEKSを触ったことなかったので、そちらを触るものとばかり思っていました。
ECSやEKSはDockerイメージ完成後の展開に利用するもので、Dockerイメージの作成や修正はしないマネージドサービスのようです。
本書後半には「ECS」「EKS」を触る場面があるので期待であります。
書籍内ではネットワークACLやVPCの設定に関して触れていないので、AWS初心者の方はそこで詰まる可能性がありそうです。
デフォルトで設定して疎通出来たような気もしますが、そこはファイトやで。
需要があるようであれば別記事化しようと思いますです。

Docker Engineインストールの事前準備

では実際に環境を構築していきましょう。Ubuntu構築は初めてなのです。
公式インストールドキュメントに「CentOS」や「Ubuntu」の内容があるので確認します。
https://docs.docker.com/engine/install/

まずは初期ユーザ名「ubuntu」でログイン。

パッケージのアップデートを実行

$ sudo apt-get update

Docker Engineの実行に必要なパッケージをインストール

aptをHTTPSでリポジトリへ通信出来るようにするために必要なパッケージをインストールします。

$ Update the apt package index and install packages to allow apt to use a repository over HTTPS:

DockerのオフィシャルGPGキーを追加する

ファイル改ざんがされていないことを確認するために使われる鍵ファイルです。
追加が完了すると「OK」と表示されます。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

追加されたことを確認するため「fingerprint」の末尾8文字の値が一致するか確認します。

$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]

Docker公式サイトをaptリポジトリへ追加する

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

以上でDocker Engineをインストールする事前準備が整いました。

Docker Engineをインストールする

再度aptのアップデートを実行し、Docker Engineをインストールする流れとなります。

$ sudo apt-get update
$ sudo apt-get -y install docker-ce docker-ce-cli containerd.io

Dockerを利用出来るユーザを追加する

初期のままだと「root」ユーザしか利用出来ないため「ubuntu」ユーザでも利用できるようにしておきます。
「グループ名:docker」に「ユーザ:ubuntu」を追加します。

$ sudo gpasswd -a ubuntu docker
Adding user ubuntu to group docker

Dockerコマンドが実行できるか確認

ここまででDocker環境のインストールと設定作業が完了しました。
実際にコマンドが入力できるかバージョン確認コマンドを実行してみます。

$ docker -v
Docker version 20.10.1, build 831ebea

バージョンの値が返ってくれば成功です。
以上でDocker環境の構築が完了となります。

今回は以前から購入していた書籍で試していますが、KindleUnlimitedに加入しているようであれば無料で読めるDockerの書籍もあるので加入済の方はそちらもご活用あれです。
その他KindleUnlimited対象の技術本をPickUpしました
ここからDockerを使ってWordpressのイメージやMySQLのイメージを構築していく流れになります。
せっかく作ったので少しお触りして感覚だけ掴んでいきたいなという意気込みであります。
最新情報をチェックしよう!