ํ์คํ ์น๐ ๊ฐ๋ฐ์ ์ง๋ง์ ๐ง๐ฝโ๐ป
โ ์ธ๊ณต์ง๋ฅ ๊ด์ฌ ๐ค
Categories
-
โฃ
โถ COMPUTER_SCIENCE
๐: 7 -
โฃ
โถ WEB
๐: 3 -
โฃ
โถ ETC
๐: 3-
โ
โฃ
ETCS
๐: 10 -
โ
โฃ
SUBBRAIN ๊ฐ๋ฐ๊ธฐ
๐: 5 -
โ
โ
YOS ๊ฐ๋ฐ๊ธฐ
๐: 1
-
โ
โฃ
-
โ
โถ AI
๐: 9-
โฃ
AITOOLS
๐: 3 -
โฃ
CV
๐: 2 -
โฃ
DEEP_LEARNING
๐: 1 -
โฃ
DATA_VIS
๐: 2 -
โฃ
GRAPH
๐: 1 -
โฃ
LIGHTWEIGHT
๐: 1 -
โฃ
MATH
๐: 1 -
โฃ
NLP
๐: 3 -
โ
STRUCTURED_DATA
๐: 2
-
โฃ
Docker ๊ธฐ๋ณธ
Docker๋ก ์๋ฒ ๊ฐ์ํํด๋ณด๊ธฐ
์ปจํ ์ด๋๋ฅผ ํตํด ์ฌ๋ฌ ํ๊ฒฝ์ด๋ ์ปค๋์ ํธ์คํธ OS๋ ๋ค๋ฅธ ์ปจํ ์ด๋์ ๊ณต์ ํจ์ผ๋ก, ๊ธฐ์กด์ ํ์ดํผ ๋ฐ์ด์ ๊ธฐ๋ฐ ๊ฐ์ํ์ ๋นํด ๋์ ์ฑ๋ฅ์ ๋ฌ์ฑํ ๊ฐ์ํ ํ๋ซํผ.
Docker ์ค์น
Linux
๋์ฑ ์์ธํ ๊ฒ์ ๋์ปค ๊ณต์ ๋ฌธ์ ์ฐธ์กฐ
์ค์น ํ์ธ
# ๋ณดํต ์ํด๋ ๋๋ค
systemctl enable docker
service docker start
service docker status
# ์๋ ๊ฒฝ์ฐ /etc/init.d/docker start
# ์ฃผ๋ก WSL์ด๋ Docker container์ linux์์ ์ผ์ด๋๋ ํ์
docker version
AWS EC2 linux images
1. apt-get ์ ๋ฐ์ดํธ ๋ฐ ๋์ปค ์ค์น
sudo apt-get update # ubuntu ๊ณ์ด
sudo apt-get install docker
sudo yum -y upgrade # red hat ๊ณ์ด
sudo yum install docker
2. ๋์ปค ์คํ
sudo systemctl start docker # docekr ์๋น์ค์ ์์์ด ํ์ํ ์๋ ์๋ค.
sudo service docker start
docker -v
Docker version 20.10.13, build a224086
์ดํ docker๋ฅผ ์์ ๊ฐ์ด ์ค์นํ๋ค.
sudo usermod -aG docker $USERNAME
์ดํ ์์ ๊ฐ์ด ํน์ ์ฌ์ฉ์์๊ฒ ๋์ปค์ ์คํ ๊ถํ์ ์ค๋ค.
Dockerfile ์ค์ ๋ฐ ์ด๋ฏธ์ง ๋น๋
FROM python:3.10.5
ENV PYTHONUNBUFFERED 1
ENV ON_PRODUCTION FALSE
ENV BACKEND_SECRET_KEY TEMP // ์์ ํค์ค์ ๋์ค์ ๊ผญ ์ ๋๋ก๋ ํค๊ด๋ฆฌ ํด๋ก ๋ฐ๊พธ๊ธฐ
RUN apt-get -y update
RUN apt-get -y install vim
RUN mkdir /srv/docker-server
ADD . /srv/docker-server
WORKDIR /srv/docker-server
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
์์ ๊ฐ์ด Dockerfile
์ ํ๋ก์ ํธ ํด๋ ๋ด์ ์์ฑํ ํ, sudo docker build -t [repository_name]/[tag_name]:[version] $project_directory
์ ์ด์ฉํด ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ค.
-t
: ํ๊ทธ ์ฌ์ฉ
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
server_dev/django latest 68e495e3bc5b 17 seconds ago 1.04GB
์ค๋ฅ ์์ด ์ข
๋ฃ๋๋ฉด ์์ ๊ฐ์ด sudo docker images
๋ฅผ ํตํด ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ธ ํ ์ ์๋ค.
๊ธฐํ ์ ์ฉํ ์ปค๋งจ๋
sudo docker image rm [--force] ImageID
: ํน์ ์ด๋ฏธ์ง ์ง์ฐ๊ธฐ
--force, -f
: ๊ฐ๋ ์๋ก ์ฐธ์กฐ ๊ด๊ณ๋ก ์ง์์ง์ง ์์ ๋ ๊ฐ์ ๋ก ์ง์, ๋ค๋ง ์ด ๊ฒฝ์ฐ ์บ์ฌ๊ฐ ์ง์์ง๋ฏ๋ก ์ด๋ฏธ์ง ๋น๋๊ฐ ๋๋ ค์ง ์ ์์
sudo docker image prune
: ์ฌ์ฉํ์ง ์๊ณ ์๋ ์ด๋ฏธ์ง๋ค ์ผ๊ด ์ญ์
sudo docker rm CONTAINERID
: ํน์ ์ปจํ ์ด๋ ์ญ์
sudo docker stop CONTAINERID
: ํน์ ์ปจํ ์ด๋ ์ค๋จ
sudo docker container prune
: ์ฌ์ฉํ์ง ์๊ณ ์๋ ์ปจํ ์ด๋ ์ผ๊ด ์ญ์
๋์ปค ์ปจํ ์ด๋ ์คํ
sudo docker run -p 80:8000 -d server_dev/django
์์ ์ปค๋งจ๋๋ฅผ ํตํด ์ด๋ฏธ์ง์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ ๋ ฅํด ์คํ๋ ์ปจํ ์ด๋๋ฅผ ํตํด ์ ์ํ ์ ์๋ค.
-
-p ์๋ฒ์ธก ์ด๋ฆฐ ํฌํธ: ์ปจํ ์ด๋์ธก ์ด๋ฆฐ ํฌํธ
: ์๋ฒ๋ก ๋ค์ด์ค๋ ์ฐ๊ฒฐ์ ํฌํธ ๋ฒํธ์ ์ปจํ ์ด๋ ์ธก์ ํฌํธ๋ฅผ ์๋ก ์ฐ๊ฒฐํด์ค๋ค. -
-d
:detached
๋ชจ๋๋ก, ์๋ฒ์ ๋ฐฑ๊ทธ๋ผ์ด๋์ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ฒ ํ๋ค.
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c93671164afa server_dev/django "python manage.py ruโฆ" 7 seconds ago Up 5 seconds 0.0.0.0:80->8000/tcp, :::80->8000/tcp amazing_pike
์๊ธฐ ์ปค๋งจ๋๋ฅผ ํตํด ๋์๊ฐ๊ณ ์๋ ์ปจํ ์ด๋์ ์ํ๋ฅผ ํ์ธํ ์ ์๋ค.
๋์ปค ํ๋ธ
๋์ปค ํ๋ธ ๋ฅผ ์ด์ฉํ๋ฉด ๋ค๋ฅธ ์๋ฒ์ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ ์ ์๋ค.
๋์ปค ํ๋ธ์ ๊ฒฝ์ฐ Repository
๋ [docker_hub_id]/[ํ๋ธ ๋ด repo ์ด๋ฆ]
์ผ๋ก ์ ์ฅํ๋ค.
docker login -u [id]
๋ก ๋ก๊ทธ์ธdocker push [dockerhub_id]/[dockerhub repository]:[push ํ๊ทธ๋ช ]
์ผ๋ก pushdocker pull [dockerhub_id]/[dockerhub repository]:[pull ํ๊ทธ๋ช ]
์ผ๋ก pull.
gnupg2 : ๋์งํธ ์๋ช ๊ณผ ์ธ์ฆ์ ์ํธํ ํด
pass: ์คํ ๋๋ ์ ๋์ค ํจ์ค์๋ ๋งค๋์
sudo apt install gnupg2 pass
# ํน์
{: #ํน์}
sudo yum install gnupg2 pass
docker-compose
docker-compose๋ฅผ ์ด์ฉํ๋ฉด ์ฌ๋ฌ ์ปจํ
์ด๋์ ์ฐ๊ณ์ ์ค์ ์ ์ฝ๊ฒ ํ ์ ์๋ค.
docker-compose ๊ฐ๋
์ฐธ์กฐ
_articles/web/CI,CD/Docker/Docker ๊ธฐ๋ณธ.md