๐Ÿ’ป Docker ๋ช…๋ น์–ด

๊ฐ€๋น„ยท2020๋…„ 12์›” 4์ผ
0

Docker ๋ช…๋ น์–ด

# ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก
docker ps -a

# ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ 
docker rm $(docker ps -a -q)

# ๋ชจ๋“  ์ด๋ฏธ์ง€ ๋ชฉ๋ก
docker images -a

# ๋ชจ๋“  ์ด๋ฏธ์ง€ ์‚ญ์ œ
docker rmi $(docker images -q)

Dockerfile ์ƒ์„ฑ

# ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™ ํ›„ 
# vi Dockerfile

# ๊ธฐ๋ฐ˜ ์ด๋ฏธ์ง€
FROM python:3

# ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •
WORKDIR /usr/src/app

# ํ˜„์žฌ ํŒจํ‚ค์ง€ ์„ค์น˜ ์ •๋ณด ๋„์ปค ์ด๋ฏธ์ง€์— ๋ณต์‚ฌ
COPY requirements.txt ./

# ์„ค์น˜ ์ •๋ณด๋ฅผ ์ฝ์–ด๋“ค์—ฌ ํŒจํ‚ค์ง€ ์„ค์น˜
RUN pip install -r requirements.txt

# ํ˜„์žฌ ๊ฒฝ๋กœ์— ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ ์ด๋ฏธ์ง€์— ๋ณต์‚ฌ
COPY . .

# ์ง€์ •ํ•œ ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ์™ธ๋ถ€์— ๊ฐœ๋ฐฉ
EXPOSE ํฌํŠธ๋ฒˆํ˜ธ

# gunicorn์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์‹คํ–‰
CMD ["gunicorn", "--bind", "0.0.0.0:ํฌํŠธ๋ฒˆํ˜ธ", "ํ”„๋กœ์ ํŠธ๋ช….wsgi:application"]  

Docker image build

โœ”๏ธ requirements ์˜์กด์„ฑ ๋ฐ RDS ์—ฐ๋™ ํ™•์ธ
docker build -t ๋„์ปคํ—ˆ๋ธŒ๊ณ„์ •๋ช…/์ด๋ฏธ์ง€๋ช…(ํ”„๋กœ์ ํŠธ๋ช… ๊ถŒ์žฅ):๋ฒ„์ „ .
# ex) docker build -t gabi/gabiproject:0.1.0 .

Docker image ์‹คํ–‰

docker run --name ์ปจํ…Œ์ด๋„ˆ๋ช… -d -p ํ˜ธ์ŠคํŠธํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ ๋„์ปคํ—ˆ๋ธŒ๊ณ„์ •๋ช…/์ด๋ฏธ์ง€๋ช…:๋ฒ„์ „
# ex) docker run --name gabi01 -d -p 8000:8000 gabi/gabiproject:0.1.0

๐Ÿ‘‰ ๋นŒ๋“œ๋œ ์ด๋ฏธ์ง€์— ์ด์ƒ์ด ์žˆ๋‹ค๋ฉด
# docker ps -a ๋ช…๋ น์–ด๋กœ ์‚ดํŽด ๋ณด์•˜์„๋•Œ status๊ฐ€ exited ๋์„ ๊ฒƒ์ด๋‹ค.
# ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ์ ‘์†ํ•˜์—ฌ ๋ฌธ์ œ ํ™•์ธ ํ›„ ์ด๋ฏธ์ง€๋ฅผ ์žฌ๋นŒ๋“œํ•œ๋‹ค.
docker run -it ๋„์ปคํ—ˆ๋ธŒ๊ณ„์ •๋ช…/์ด๋ฏธ์ง€๋ช…:๋ฒ„์ „ /bin/bash

Docker EC2 ๋ฐฐํฌ

# local ํ™˜๊ฒฝ์—์„œ
docker login

docker push ๋„์ปคํ—ˆ๋ธŒ๊ณ„์ •๋ช…/์ด๋ฏธ์ง€๋ช…:๋ฒ„์ „

# aws ์„œ๋ฒ„ ์ ‘์†
# ubuntu docker ์„ค์น˜
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce

sudo apt install docker-ce

sudo docker login

sudo docker pull ๋„์ปคํ—ˆ๋ธŒ๊ณ„์ •๋ช…/์ด๋ฏธ์ง€๋ช…:๋ฒ„์ „

sudo docker run --name ์ปจํ…Œ์ด๋„ˆ๋ช… -d -p ํ˜ธ์ŠคํŠธํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ ๋„์ปคํ—ˆ๋ธŒ๊ณ„์ •๋ช…/์ด๋ฏธ์ง€๋ช…:๋ฒ„์ „

0๊ฐœ์˜ ๋Œ“๊ธ€