Docker๋?
ocker ์ปจํ
์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ชจ๋ ์ฝ๋ ๋ฐ ์ข
์์ฑ์ ํ์ค ํ์์ผ๋ก ํจํค์งํ ์ ์๊ฒ ํด์ฃผ๋ ์ปจํ
์ด๋์
๋๋ค. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์ด ์ปดํจํ
ํ๊ฒฝ ์ ๋ฐ์์ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์คํ๋ ์ ์์ฃ . Docker ์ปจํ
์ด๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์์คํ
๋๊ตฌ, ์ฝ๋, ๋ฐํ์ ๋ฑ ์ ํ๋ฆฌ์ผ์ด์
์คํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋ด๊ณ ์๋ ์ธ๊ธฐ ์๋ ๊ฒฝ๋์ ๋
๋ฆฝํ ์คํ ์ปจํ
์ด๋์
๋๋ค. Docker๋ ๊ฐ๋ฐ์๊ฐ ์ปจํ
์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น ๋ฅด๊ฒ ๋น๋, ํ
์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ ์ํํธ์จ์ด ํ๋ซํผ์ด๊ธฐ๋ ํฉ๋๋ค.
[์ถ์ฒ] : https://www.oracle.com/kr/cloud/cloud-native/container-registry/what-is-docker/
Docker ๋ช
๋ น์ด reference
https://docs.docker.com/engine/reference/commandline/cli/
Docker container ์ํ ํ์ธํ๊ธฐ
docker ps
- - CONTAINER_ID: container์ ๊ณ ์ ID
- - IMAGE: container๋ฅผ ๋์ฐ๋๋ฐ ์ฌ์ฉํ image ์ด๋ฆ
- - COMMAND: container์์ ์คํํ command
- - CREATED: conatiner๊ฐ ์์ฑ๋ ์๊ฐ
- - STATUS: container์ ์ํ
- - PORT: port๋ฅผ publish ํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋์ด ์๋์ง
- - NAMES: container์ ์ด๋ฆ
docker container ๋ฉ์ถ๊ธฐ
docker stop {container_id|conatinaer_name}
docker kill {container_id|conatinaer_name}
- stop์ ๊ฒฝ์ฐ์๋ SIGTERM์ด๋ผ๋ ์ ํธ๋ฅผ ๋ณด๋
- kill์ ๊ฒฝ์ฐ์๋ SIGKILL์ด๋ผ๋ ์ ํธ๋ฅผ ๋ณด๋
docker container ๋์ด๋ฆฌ๊ธฐ
docker restart {container_id|container_name}
์คํ์ค์ธ container์์ ๋ช
๋ น์ด ์คํํ๊ธฐ
docker exec [options] {container_id|container_name} [command]
docker container ์ญ์ ํ๊ธฐ
docker rm {container_id}
Docker๋ก ์คํ
1. Dockerfile ์์ฑ
FROM python:3.9.13 # docker image ๋ฅผ ์์ฑํ ๋ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ base image ๋ฅผ ์ ์ ๋ถ๋ถ
ADD requirements.txt . # ADD src dst ํธ์คํธ ๋จธ์ ์ ์๋ ํ์ผ์ด๋ ํด๋๋ฅผ dst ๋ผ๋ ์์น์ ์ ์ฅ
RUN pip install -r requirements.txt # RUN script๋ script ๋ฅผ ์คํ
ADD templates templates
ADD app.py .
CMD ["python", "app.py"] # ์์ฑ๋ docker image ๋ฅผ ์คํํ ๋ ์๋์ผ๋ก ์คํ๋๋ ์ปค๋งจ๋
2. Docker image build
- -t ์ต์
์ ์ฌ์ฉํ๋ฉด image์ ์ํ๋ ์ด๋ฆ์ ๋ถ์ผ ์ ์์ต๋๋ค. {image_name}:{tag} ์ ํํ๋ก ์ฌ์ฉํ๋ฉฐ, {tag} ๋ฅผ ๋ถ์ด์ง ์์๊ฒฝ์ฐ ์๋์ผ๋ก latest ๊ฐ ๋ฉ๋๋ค.
- . ๋ docker build๋ฅผ ์ด๋ ์์น์์ ์คํํ ๊ฒ์ธ์ง ์ ์ํฉ๋๋ค. ์ด ์์น์ ๋ฐ๋ผ ADD ์ปค๋งจ๋์์ ํธ์คํธ์ ํ์ผ ์์น๋ฅผ ์ฌ์ฉํ๋๊ฒ ๋ฐ๋ ์ ์์ต๋๋ค.
docker build [OPTIONS] PATH
=
docker build -t docker_prac:version1 .
3. Docker image ๋ชฉ๋ก ํ์ธ
docker images
4. Docker image ์คํ
docker run docker-memo:version1
5. ์๋ก์ด ๋ฒ์ (์์ ์ฌํญ ์ ์ฉ๋)์ Docker image build
- -t ์ต์
์ ์ฌ์ฉํ ๋ ๋์ผํ image_name:tag ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ override๋๊ฒ ๋ฉ๋๋ค. ์กฐ์ฌํ์ธ์!
docker build . -t docker-memo:version2