Linux
AWS
docker
非エンジニア
docker-compose

非エンジニアがAmazon EC2でDockerをインストール・起動させるまで

前回の非エンジニアがやってみた記事( 非エンジニアがWindows Subsystem for LinuxでHello Worldを表示させるまで )を投稿した際に、類まれなる心優しい方々が
いいねをしてくれたので、Dockerインストールについてもブログをあげます。

(ちなみに、会社のSlackでは、
「エンジニアのみんな、まだまだ技術が分からないから!とかで投稿をためらうことはない、このブログを見てみろ!」とネタにされました。。www)

Docker for Windowsをインストール

DockerIDを作成して、Docker for Windowsをインストール
https://docs.docker.com/docker-for-windows/

普通にソフトウェアとしてインストールできました。
くじらさんのアイコンも見えるし、
Docker is running って緑色の●が表示されている!
image1.png

うしっ

一応、確認のため、教材に書いてある通り、
PowerShellでdocker version でDockerの起動を確認する。
image.png

動かん。。
なんでなんで。。

赤字で優しく諭してくれているけど、
半分以上言ってることが分からんのだ、すみませんww

まぁスペックの低いWindowsのPCで、なんかいろいろやるのも嫌だし、
Linux環境でやれたほうがよさげなので、
AWS勉強会で構築したEC2にdockerをインストールすることに軌道修正。

AWS EC2にDockerをインストール

こちらの記事を参考にDockerをAWSのEC2にインストール

上記のブログ手順でインストールすると、
コマンドの意味も分からずインストールができちゃったから、分からないコマンドは復習。

こちらはコマンドの意味もわからないでやってるから、
全然よくわからないまま。。というのもなんだかもったいないので。。

まぁ、なにをやっているか理解しないで、やっているということは、
あまり意味のないことなんだなぁということを改めて実感。。。
なんとなく、こう使うのかな?というはわかるけども。

$ sudo usermod -a -G docker ec2-user

今回、Docekerをインストールするまで、
全然しらなかったのですが、
イメージを新たにインストールすると、
同時にそのイメージの権限をもったグループが作られるのですね!!

usermod ・・・ユーザーのグループを変更するコマンド

でオプションとして、
-a ・・・追加
-G ・・・編集

$ cat /etc/group |grep docker

cat・・・ファイルを連結して標準出力に出力する。concatnateの略。

今回のコマンドは、
ec2-userがDockerグループにちゃんと所属できてますかー?っていう確認するためのコマンドだったという理解。

表示された文字列の意味は以下とのこと。

hoge_group: x :501:hoge_user3,hoge_user2

hoge_group:グループ名
x:「 x 」という文字か、暗号化されたパスワード。「 x 」はシャドウパスワードを使用している事を意味する。
501:グループID( GID )
hoge_user3,hoge_user2:サブグループとして所属しているユーザーアカウントのリスト。カンマ区切り。

xが良くわかんないけど、まぁ良いか。

docker-composeが確認できない

んでもって、
docker-composeのインストール

$ curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version

ここでつまづく
bash: docker-compose: command not found
と表示されてしまう。

確認できませんぬ。
$ docker-compose --version

docker-compose version 1.9.0, build 2585387
みたいなものが表示されると思ったのだけども。

で、コンテナ勉強会やっている先生に聞く。

私「できませんぬ。」
先生「ああ、実行パスを変更してないのですね。」
先生「env | grep PATH を確認してください。」

とりあえず実行

むむ

[root@ip-10-0-1-233 ec2-user]# env | grep PATH
PATH=/sbin:/bin:/usr/sbin:/usr/bin

なるほど。
rootユーザーだったから、
ドッカーコンポーザをインストールしたローカルユーザーのパスをうまく指定できていなかったのね!

ユーザーをec2-userに変更して。。

$ docker-compose --version
docker-compose version 1.9.0, build 2585387

無事表示されました!
 
 
「rootなんだから、
全部のパス通させろやー
まどろっこしいことすんなよー」(ジャイアン)
と思いましたが、
以下を読んで必要性について理解。

https://ja.stackoverflow.com/questions/30665/root%E3%81%AB-usr-local-bin%E3%81%AE%E3%83%91%E3%82%B9%E3%81%8C%E9%80%9A%E3%81%A3%E3%81%A6%E3%81%AA%E3%81%84%E7%90%86%E7%94%B1%E3%81%AF%E3%81%AA%E3%82%93%E3%81%A7%E3%81%99%E3%81%8B
 
とりあえず、11月下旬に開催される勉強会のスタートラインにたてました。

Docker for Windowsの起動が確認できなかった理由

ちなみに冒頭に書いたDocker for Windowsで、
ドッカーのバージョンが確認できなかったのも、
もこのパスが通っていないと同じ理由で、
Dockerコマンドがどこにあるか認識されていないということだったようです。

再起動したら、PowerShellで起動の確認できました!