ECSをなんとなく理解したい(その1)
目標
- dockerのなんとなくの理解
- docker-composeのなんとなくの理解
- github actionのなんとなくの理解
- ECSのなんとなくの理解
Dockerについてなんとなく理解する
環境構築
参考URL
Install Docker Compose | Docker Documentation
Command-line completion | Docker Documentation
Amazon Linux2 latest(最新)
※無料枠のスペックで大丈夫
ECS利用時はちょこちょこお金かかるので注意
必要なミドルや起動等諸々の手順
# EC2にログイン後 # dockerとgitをインストール sudo yum install -y docker git # dockerの状態の確認 sudo systemctl status docker # dockerの起動 sudo systemctl start docker # dockerの状態の確認 sudo systemctl status docker # dockerの自動起動有効 sudo systemctl enable docker # ec2-userでdockerをいぢれるように # dockerグループにec2-userを所属 sudo gpasswd -a ec2-user docker # docker-composeコマンドのインストール # 及び実行権限の付与 sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # dockerコマンド及びdocker-composeコマンドの # completionのインストール sudo curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /etc/bash_completion.d/docker sudo curl -L https://raw.githubusercontent.com/docker/compose/1.26.2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
上記実施後、Logoutし再度ログインを実施
そうしないとdockerコマンドをec2-userで使えない
# dockerグループに所属してるか確認 id # dockerコマンドが使えるか確認 # tabキーを押してコマンドが補完されるかもあわせて確認しておく docker ps
チュートリアル
Dockerイメージの理解を目指すチュートリアル - Qiita
ぶっちゃけ前佛さんの上記チュートリアルを実践するのがよいと思う
まとめ(みたいなもの)
Dockerがどういうものなのかについては上記チュートリアル内に記載があるように
Dockerコンテナの実行とは、特別な状態でのプロセスの実行
と考えるのがよいと思う
賛否はあるかとおもうが、感覚的にはパッケージ管理(yum,apt,app,dnf...etc)に近い
docker hub等のリポジトリがあり、そこからインストールして使う、みたいな
少し違うとすると、実行時にもdockerが担ってるところか
それとあくまでも特殊加工なプロセスなのでVMのような使い方はしないほうがいいよね
っていうのは同意
なので1コンテナ1プロセスとするのが基本的にはよいと思う
2015年頃のWeb開発者がやりがちだった、DockerをVMと同じように使うのは便利だけど辞めたほうが良いという話 - inductor's blog
参考
基本的な部分だけであればチートシートはとてもありがたい
ベストプラクティスやADDやCOPYの違い、CMDとENTRYPOINTの違いについてもおさえておく
Dockerfile を書くためのベストプラクティス解説編
Dockerfileチートシートv19.03 - Qiita
ENTRYPOINTは「必ず実行」、CMDは「(デフォルトの)引数」 | Pocketstudio.Net