EC2(Amazon Liunx2)上でのDocker構築memo

前提条件

外部疎通可能なネットワーク上にEC2インスタンスを作成/起動していること
SSH接続可能なセキュリティグループが設定されていること


SSH接続

ターミナルを起動して対象EC2インスタンスのキーペアが格納されている自端末のディレクトリに移動する

権限の確認

ls -l

f:id:hedgehogweeklyreport:20181205175322p:plain:w400

chmodコマンドを実行して対象キーペアの権限を変更
※このディレクトリに格納されている対象キーペアは[docker-test.pem]

chmod 400 docker-test.pem

f:id:hedgehogweeklyreport:20181205175454p:plain:w400

EC2インスタンスのパブリックDNSを使用してSSH接続する
※パブリックDNSはそれぞれ環境により別なので注意

f:id:hedgehogweeklyreport:20181205184217p:plain

ssh -i "docker-test.pem" ec2-user@ec2-52-199-244-253.ap-northeast-1.compute.amazonaws.com

ssh -i : 秘密鍵を使用して接続する
"docker-test.pem" : 対象EC2のキーペア
          ※EC2作成時に一度だけダウンロードできるやつ

ec2-user : ユーザー名(基本的にec2-user)
ec2-52-199-244-253.ap-northeast-1.compute.amazonaws.com : 対象EC2のパブリックDNS

f:id:hedgehogweeklyreport:20181205180715p:plain:w400

ということでSSH接続できました。


Dockerインストール

AWS公式にならってインストールしていきます。
Amazon ECS における Docker の基本 - Amazon Elastic Container Service

sudo yum update -y
sudo yum install -y docker

現行の公式手順だと2行目でエラーが出力されます。

f:id:hedgehogweeklyreport:20181205181458p:plain:w400

実行結果をよく読むと、こっちを使ってねという案内があります。

sudo amazon-linux-extras install docker

コマンドを実行後、ざざ〜っと色々表示されて[完了しました!]と表示されます。

f:id:hedgehogweeklyreport:20181205181835p:plain:w400

Dockerサービスの起動

sudo service docker start

EC2-userをDockerグループに追加(これでsudoしなくてよくなる)

sudo usermod -a -G docker ec2-user

usermod : ユーザ設定を変更
-a : 副グループを追加
-G :副グループを変更
docker : グループ名
ec2-user : ユーザ名

コマンド実行後一度ターミナルを閉じて新規に立ち上げて再度SSH接続する。

sudoなしでバージョン確認

docker version

f:id:hedgehogweeklyreport:20181205183218p:plain:w400

出来た


詰まりポイント

公式のページ更新が追いついていない為、インストールコマンド実行時が詰まりそうなポイントではある。焦らず出力されたメッセージを読むの大事。