nul-point

完全に自分用の備忘録です。

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