前回の非エンジニアがやってみた記事( 非エンジニアが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 って緑色の●が表示されている!
うしっ
一応、確認のため、教材に書いてある通り、
PowerShellでdocker version
でDockerの起動を確認する。
動かん。。
なんでなんで。。
赤字で優しく諭してくれているけど、
半分以上言ってることが分からんのだ、すみません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で起動の確認できました!