LoginSignup
9
15

Docker学習 1日目

Last updated at Posted at 2024-01-23

Dockerの学習を始めました。
まだ全体の流れがイメージできていない、メモのような内容です。
間違っているところがあるかもしれませんし、
読みづらい記事になっているかと思います。。。
理解が深まり次第、その都度、更新・訂正します!
(間違いのご指摘や、アドバイスいただければとても嬉しいです!)

《目的》

  1. Dockerの理解
  2. docker-composeの理解
  3. コンテナオーケストレーションツール(AWS ECS)の理解

1-1 Dockerの構成要素

以下は、Docker hubからcentosのイメージをダウンロードして、さらにcurlの機能を搭載してカスタムしたDockerimageをDocker hubにプッシュする際の図。

スクリーンショット 2024-01-23 19.34.04.png

  • Docker Client:Docker Daemonに命令を出す。それぞれは通常同じサーバーにあるが、違うところにある場合もあり。
  • Docker Daemon:コンテナに変更を加えたり、変更後のDocker imageを保存したり、Docker imageを管理している。DockerFileを元にビルドする。Dockerhub等のDocker imageの保管場所であるレジストリと通信してPUSHやPULLをする。

1-2 EC2(Amazon Linux2023)にセットアップ

EC2上にDockerをインストールし、
Docker Compose(アプリケーションの構成や複数のコンテナを管理するためのツール)もセットアップ、
最終的には、gitで取得したアプリケーションをDockerを使用して起動するスクリプト。
各コマンドの説明。

# Dockerに関するセットアップ
sudo yum update -y && \
#Dockerのパッケージをダウンロードしてくる
sudo yum install -y docker && \
# ec2-userを-G docker に所属させる
sudo usermod -a -G docker ec2-user && \
# Dockerを起動する、起動しているかどうかのステータスも表示する
sudo systemctl start docker.service && \
# EC2再起動後もDockerを再起動して
sudo systemctl enable docker.service && \
# 以下はDocker composeに関するセットアップ
# githubのリポジトリからdockercomposeのパッケージをEC2のbinにダウンロード
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose && \
# 以下、EC2のセットアップ&アプリの起動
sudo yum install -y  python3-devel gcc jq tree git && \
git clone https://github.com/AWSCLOUDTECH/tutorial.git && \
cd tutorial/todobackend && \
cd src && \
sudo yum install -y pip
pip3 install wheel uwsgi && \
# -rでrequirements.txtに書かれた内容を一括で実行できる 
pip3 install -r requirements.txt --user && \
# migrateはデータベースを使用可能にするコマンド
python3 manage.py migrate && \
python3 manage.py runserver 0.0.0.0:8000

上記のコマンド実行にてEC2に直接インストールし、
アプリをEC2上で実行し確認済み。

補足:Docker FileとDocker imageの関係

スクリーンショット 2024-01-23 21.10.32.png

9
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
15