[PROJECT] AIRBNB CLONING #6
도커(Docker)
コンテナは、ソフトウェアの開発、導入、および実行のための簡単で迅速で強力な方法を提供するコンテナ仮想化技術です.docker image
を作成し、Docker Container
を使用して配置します.Docker
Install Docker
次のページからドッキングステーションを取り付けます.brewでインストールすることもできます.
Setting
RDSの作成 RDS MySQLサーバに接続します.
mysql -h 'RDS Database Endpoint 주소' -u root -p
次にデータベースを作成します.mysql> create database 'DATABASE 이름' character set utf8mb4 collate utf8mb4_general_ci;
データベースを作成した後、DATABASES
の情報を変更してRDSデータベースに適応します.DATABASES = {
'default' : {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'DATABASE 명',
'USER' : 'DB 접속 계정명',
'PASSWORD' : 'DB 접속 비밀번호',
'HOST' : 'RDS Database Endpoint 주소',
'PORT' : 'DB PORT'
}
}
setting_up.shを作成します.# !/bin/sh
# create conda virtual environment
echo y | conda create -n docker_train python=3.9 && conda activate docker_train
# install dependency packages
pip install -r requirements.txt
# create table
python manage.py migrate
# upload dependency data
python db_upload/db.py
# find server IP Address
echo 'ip주소 입력'
# echo | ipconfig getifaddr en0
# runserver
python manage.py runserver 0:8000
setting_up.shを実行してテーブルとデータを作成します.http requestをサーバに送信し、RDS MySQLサーバにデータが正しく入力されていることを確認します.
Create Docker Image
DockerFileの作成
現在のプロジェクトフォルダに
Dockerfile
を作成してDockerイメージを作成します.# 기반이 될 이미지
FROM python:3
# 작업디렉토리(default)설정
WORKDIR /usr/src/app
## Install packages
# 현재 패키지 설치 정보를 도커 이미지에 복사
COPY requirements.txt ./
# 설치정보를 읽어 들여서 패키지를 설치
RUN pip install -r requirements.txt
## Copy all src files
# 현재경로에 존재하는 모든 소스파일을 이미지에 복사
COPY . .
## Run the application on the port 8080
# 8000번 포트를 외부에 개방하도록 설정
EXPOSE 8000
# gunicorn 사용해서 서버를 실행
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "'프로젝트명'.wsgi:application"]
最後にgunicornを使用してサーバを実行し、"'프로젝트명'.wsgi:application"
に「名前」を入力する必要があります.そうでない場合、Gunicornはファイルが見つかりません.次のエラーが発生します.次のように入力します.プロジェクト名はconfigです.
python manage.py startproject '이름'
Build Image
Dockerfileを使用してイメージを構築します.
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "config.wsgi:application"]
例)docker build -t 'DockerHub username'/'image name(project name)':'version' 'Dockerfile path' .
Push Image
docker build -t robbins4bos/yhim2:0.1.0 .
では、次のコマンドで画像をリフレッシュします.DockerHub
EC 2導入
次の手順に従います.
EC 2に接続してDockerをインストールする
まずEC 2 instanceに接続します.
# 생성한 EC2 instance 접속
# get-docker.sh 다운로드
$ curl -fsSL https://get.docker.com -o get-docker.sh
# ll 명령어로 현재 디렉토리에 get-docker.sh 파일 확인
$ ll
# get-docker.sh 실행하여 Dokcer 설치
$ sh get-docker.sh
最初のSSHがEC 2に接続されたときにPermission Errorが発生した場合は、次の操作を行います.# 해당 에러는 pem 파일이 너무 많은 권한 설정이 되어있어 발생함
# pem 파일을 최소한의 권한으로 설정
$ sudo chmod 400 'Key 이름'.pem
または、docker push robbins4bos/yhim2:0.1.0
を入力してファイルのアクセス権を666に変更し、グループ内の他のユーザがファイルにアクセスできるようにします.ブログ参照.Docker Image Pull
docker pull robbisn4bos/yhim2:0.1.0
Docker Containerの実行
次のコマンドを入力すると、まず画像をローカルで検索し、ない場合はDockerHubが自動的に画像を検索します.すぐにイメージを読み込み、コマンドを実行します.(Pullコマンドなしでコンテナを実行します.)
sudo chmod 666 /var/run/docker.sock
docker run --name api -p 8000:8000 robbisn4bos/yhim2:0.1.0
オプションを選択して、コンテナを作成して使用します.コンテナが作成されている場合は、--name
を押します.Error
DOKERお腹を切るぞ~!
『DOKER』を配布したいのでメンターの質問の痕跡をつかんで…!
刺激
Reference
この問題について([PROJECT] AIRBNB CLONING #6), 我々は、より多くの情報をここで見つけました https://velog.io/@tritny6516/PROJECT-AIRBNB-CLONING-6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol