-
๐ Docker๋?
-
โญ๏ธ ํน์ง
-
Docker ๊ตฌ์กฐ
-
๊ธฐ์กด ๊ฐ์๋จธ์ ๊ตฌ์กฐ
-
Docker ์ VM ์ฐจ์ด์
-
๐ Docker ์ฌ์ฉ๋ฒ
-
๐ Docker Image๋? / ๋ช ๋ น์ด
-
๐ ์ปจํ ์ด๋ ( Container )
-
๐ Dockerfile๋ก, Image ๋ง๋ค๊ธฐ
-
Dockerfile ์์ฑ
-
Image๋ง๋ค๊ธฐ ( Dockerfile ๋น๋ )
-
๐ Image ๊ณต์ ํ๊ธฐ
-
๐ ๋ก๊ทธ๋ณด๊ธฐ
๐ Docker๋?
๊ฐ๋ฐํ๊ฒฝ์ ์ธ์ ์ด๋์๋ ๋์ผํ๊ฒ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ฃผ๋, ๊ฐ์ํ๊ฒฝ ํ๋ก๊ทธ๋จ
# ๊ฐ๋ฐํ๊ฒฝ์ image๋ ํ์ผ๋ก ๋ง๋ค์ด, Docker Hub ํํ์ด์ง์ ์ฌ๋ ค ์ฌ๋๋ค๊ณผ ๊ณต์ ํ๋ค.
โญ๏ธ ํน์ง
๋ฆฌ๋ ์ค์ namespace ๊ธฐ์ ์ ์ด์ฉํด, ๊ธฐ์กด์ OS์ ์ปค๋์ ์ฌ์ฉํ๋ฉด์, ์ฑ์ ํ์ํ ํ์ผ๋ง ๋ถ๋ฆฌํ๋ค.
Docker ๊ตฌ์กฐ
์ปดํจํฐ {
์ด์์ฒด์ (OS) {
๋์ปค {
์ปจํ
์ด๋ 1 { ... }
์ปจํ
์ด๋ 2 { ... }
์ปจํ
์ด๋ 3 { ... }
...
}
}
}
# ์ปดํจํฐ -> os -> ๋์ปค -> ์ปจํ
์ด๋
# ๋์ปค๋ก ๋ง๋ค์ด์ง ๊ฐ๋ฐํ๊ฒฝ์ ์ปจํ
์ด๋๋ผ๊ณ ๋ถ๋ฆฌ๊ณ , ๊ด๋ฆฌ๋์ด์ง๋ค.
๊ธฐ์กด ๊ฐ์๋จธ์ ๊ตฌ์กฐ
์ปดํจํฐ {
์ด์์ฒด์ (OS) {
๊ฐ์ ์ด์์ฒด์ (OS) 1 { ... }
๊ฐ์ ์ด์์ฒด์ (OS) 2 { ... }
๊ฐ์ ์ด์์ฒด์ (OS) 3 { ... }
...
}
}
# docker์๋ ๋ค๋ฅด๊ฒ, ์ด์์ฒด์ ๋ฅผ ๋ฐ๋ก ์ค์นํ๋ฏ๋ก, ์ฉ๋์ด ํฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๋๊ฐ ๋๋ฆฌ๋ค.
# ์ปดํจํฐ -> os -> os -> ์ฑ
[Docker] ๊ธฐ์กด์ VM๊ณผ Docker์ ๊ตฌ์กฐ ๋น๊ต
ํ์ดํผ ๋ฐ์ด์ ๋? [๊ฐ์ํ๊ฒฝ] ํ์ดํผ๋ฐ์ด์ ๋? ํ์ดํผ๋ฐ์ด์ ๋? ๊ฐ์ ๋จธ์ (Virtual Machine, VM)์ ์์ฑ, ์คํํ๋ ํ๋ก๊ทธ๋จ ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฅ ํ์ดํผ๋ฐ์ด์ ์ด์์ฒด์ ์ ์ฌ๋ฌ๊ฐ์ง ์์์ ๋ถ๋ฆฌํด, VM
defineall.tistory.com
Docker ์ VM ์ฐจ์ด์
์ํฉ | ๊ธฐ์กด VM ์ด์ฉํ ์ฑ | Docker ์ด์ฉํ ์ฑ |
1๊ฐ์ง ๊ธฐ๋ฅ ๊ณ ์ฅ๋ฌ์๋ | ์ ์ฒด ์๋น์ค ์ด์ฉ๋ถ๊ฐ | ๋๋จธ์ง ์๋น์ค ์ด์ฉ๊ฐ๋ฅ |
์๋ก์ด ์ฑ ๋ง๋ค๋ | OS ์ค์น ( ์ฉ๋ ํผ ) | ์ปจํ ์ด๋ ์ค์น ( bins/libs , app - ์ฉ๋ ์์ ) |
๊ธฐ๋ฅ์ด ๊ฐ์ ์๋น ์ฑ ๋ง๋ค๋ | ์ฒ์๋ถํฐ ์๋ก ๊ตฌ์ฑ | ๋์ปค ์ด๋ฏธ์ง ํ์ผ ์ด์ฉํด ๊ฐ๋จํ ๊ตฌ์ฑ |
๐ Docker ์ฌ์ฉ๋ฒ
Docker ์ค์นํ๊ธฐ
Docker Desktop overview
docs.docker.com
์๋์ฐ, ๋ฆฌ๋ ์ค, MacOS ๋ง๋ค ์ค์น๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค.
๐ Docker Image๋? / ๋ช ๋ น์ด
Docker ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ค๊ณ๋
Image ๊ฒ์
# centos image๋ฅผ ๊ฒ์ํ๋ค.
docker search centos
Image ๋ค์ด๋ก๋
# centos:latest(์ต์ ์
๋ฐ์ดํธ ๋ฒ์ ) image๋ฅผ ๋ค์ด๋ฐ๋๋ค
docker pull centos:latest
๋ค์ด๋ฐ์ Image ํ์ผ ๋ชฉ๋ก๋ณด๊ธฐ
docker images
image ์ญ์
docker rmi <์ด๋ฏธ์ง>
๐ ์ปจํ ์ด๋ ( Container )
๋์ปค๊ฐ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ, ์ฑ
์ปจํ ์ด๋๋ ์๋ก ๋ ๋ฆฝ๋ ๊ณต๊ฐ์ ์ ์ฅ๋๊ณ ,
๊ณ ์ ํ IP๋ฅผ ๊ฐ์ง๋ค.
๊ฐ๋ฐํ๊ฒฝ(์ปจํ ์ด๋)์ ์์ฑํ๋ฉด์, ์ ์ํ๊ธฐ
docker run <์ต์
> <์ด๋ฏธ์ง> <๋ช
๋ น์ด>
# [ ์ต์
]
# -i : ์ฌ์ฉ์๊ฐ ์
์ถ๋ ฅ์ ํ ์ ์๋ ์ํ๋ก ํ๋ค
# -t : ์ปจํ
์ด๋ ์์์ ํฐ๋ฏธ๋ ํ๊ฒฝ์ ์ฌ์ฉํ๊ฒ ๋ค
# -d : ์ปจํ
์ด๋๋ฅผ ๋ฐ๋ชฌํ๋ก์ธ์ค ํํ๋ก ์คํ ( ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ )
# --name "์ด๋ฆ" : ์ปจํ
์ด๋์๊ฒ ๋ณ๋ช
์ ๋ถ์ฌ์, ์ฌ์ฉ์๊ฐ ํ์ฉํ๊ธฐ ํธํ๋๋ก ๋ง๋ ๋ค.
# -e "ํ๊ฒฝ๋ณ์": ์ปจํ
์ด๋์ ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํ๋ค.
# -p : host์ ์ปจํ
์ด๋๋ฅผ ํฌํธ๋ก ์ฐ๊ฒฐ. 80(ํธ์คํธ):80(์ปจํ
์ด๋)
# -v : host์ ํน์ ๊ฒฝ๋ก๋ฅผ ์ปจํ
์ด๋์ ํน์ ๊ฒฝ๋ก๋ก ์ฐ๊ฒฐ(๋ง์ดํธ)ํด์ค๋ค.
# -w : Dockerfile์ workdir๋ฅผ ์ค์ ํ๋ค.
# [ ์ค๋ช
]
# ๋ช
๋ น์ด ์คํ์ด ์ข
๋ฃ๋๋ฉด, ์ปจํ
์ด๋๋ ๊ฐ์ด ์ข
๋ฃ (-d ์ต์
์ผ๋ก ์ข
๋ฃ์๋๊ฒ ํ ์ ์์)
# ์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ์ง์ ํด๋์ผ๋ฉด, ํ๊ทธ๋ก ์ปจํ
์ด๋ ์์ฑ์ด ๊ฐ๋ฅ
์ปจํ ์ด๋ ๋ชฉ๋ก ํ์ธํ๊ธฐ
docker ps -a
# -a : ์ค์ง๋์ด ์๋ ์ปจํ
์ด๋๋ ์ถ๋ ฅ
# -s : ์ปจํ
์ด๋์ ๋์คํฌ ์ฌ์ฉ๋๋ ์ถ๋ ฅ
# -f "์กฐ๊ฑด" : ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ถ๋ ฅ
์ปจํ ์ด๋ ์ค์งํ๊ธฐ
# ์ปจํ
์ด๋ : CONTAINER ID or ์ปจํ
์ด๋ ํ๊ทธ
docker stop <์ปจํ
์ด๋>
# -a : ๋ชจ๋ ์ปจํ
์ด๋ ์ข
๋ฃ
์ค์ง๋ ์ปจํ ์ด๋ ์์ํ๊ธฐ
docker start <์ปจํ
์ด๋>
์คํ์ค์ธ ์ปจํ ์ด๋ ์๋๋ก ๋ช ๋ น์ด ์คํ
docker exec <์ต์
> <์ปจํ
์ด๋> <๋ช
๋ น์ด>
# ์ต์
# -i : ์ฌ์ฉ์ ์
์ถ๋ ฅ ๋ฐ์
# -t : ํฐ๋ฏธ๋ ์ฌ์ฉ
์ปจํ ์ด๋ ์ญ์ ํ๊ธฐ
docker rm <์ปจํ
์ด๋>
๐ Dockerfile๋ก, Image ๋ง๋ค๊ธฐ
Dockerfile ์์ฑ
# package.json ํ์ผ๊ณผ ๋์ผํ ํด๋์ ๋ง๋ , Dockerfile ์์ฑ
# FROM : ๋ฒ ์ด์ค ์ด๋ฏธ์ง ์ง์
# node:12-alpine ์ด๋ฏธ์ง์์ ์์ ( ์์ผ๋ฉด ์๋๋ค์ด )
FROM node:12-alpine
# RUN : ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ ์ ์ํํ ์ ๋ช
๋ น์ด
RUN apk add --no-cache python2 g++ make
# WORKDIR : ๋์ปค ์ด๋ฏธ์ง ์์ฑํ, ๋ช
๋ น์ด๊ฐ ์คํ๋ ๊ฒฝ๋ก ์ค์
WORKDIR /app
# COPY : host/. ๋๋ ํ ๋ฆฌ ๋ด์ฉ์, Container/. ๋๋ ํ ๋ฆฌ์ ์ถ๊ฐ
COPY . .
# yarn ์ด์ฉํด ํจํค์ง ์ค์น
RUN yarn install --production
# CMD : ์ด๋ฏธ์ง๋ก ๋ง๋ ์ปจํ
์ด๋์์ ์คํํ ๋ช
๋ น์ด ์ง์
CMD ["node", "src/index.js"]
# EXPOSE : ์ปจํ
์ด๋ ์ ์ ํฌํธ ์ค์
EXPOSE 3000
Image๋ง๋ค๊ธฐ ( Dockerfile ๋น๋ )
docker build -t getting-started .
# -t : ์ด๋ฏธ์ง์ ํ๊ทธ ์ถ๊ฐ ( getting-started )
# . : ํ์ฌ ๊ฒฝ๋ก์์ Dockerfile ์ฐพ๊ธฐ
๐ Image ๊ณต์ ํ๊ธฐ
Docker Hub ๊ฐ์
Docker Hub Container Image Library | App Containerization
We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy
hub.docker.com
Docker Hub Repository ๋ง๋ค๊ธฐ
github์ ๋์ผํ๋ค.
1. ์ด๋ฆ ์ค์
2. Public ์ ํ
๋ช ๋ น์ฐฝ์์ Docker Hub ๋ก๊ทธ์ธํ๊ธฐ
docker login -u <์ฌ์ฉ์์ด๋ฆ>
์ ๋ก๋ ํ๊ธฐ์ํด, Image ํ๊ทธ ๋ณ๊ฒฝํ๊ธฐ
docker tag getting-started <์ฌ์ฉ์์ด๋ฆ>/<Repository>
Respository์ Image ์ ๋ก๋ํ๊ธฐ
# tagname์ ์ง์ ํ์ง ์์๋ ๋จ
docker push <์ฌ์ฉ์์ด๋ฆ>/<Repository>:tagname
๐ ๋ก๊ทธ๋ณด๊ธฐ
docker logs -f <์ปจํ
์ด๋ID>
๐ Docker๋?
๊ฐ๋ฐํ๊ฒฝ์ ์ธ์ ์ด๋์๋ ๋์ผํ๊ฒ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ฃผ๋, ๊ฐ์ํ๊ฒฝ ํ๋ก๊ทธ๋จ
# ๊ฐ๋ฐํ๊ฒฝ์ image๋ ํ์ผ๋ก ๋ง๋ค์ด, Docker Hub ํํ์ด์ง์ ์ฌ๋ ค ์ฌ๋๋ค๊ณผ ๊ณต์ ํ๋ค.
โญ๏ธ ํน์ง
๋ฆฌ๋ ์ค์ namespace ๊ธฐ์ ์ ์ด์ฉํด, ๊ธฐ์กด์ OS์ ์ปค๋์ ์ฌ์ฉํ๋ฉด์, ์ฑ์ ํ์ํ ํ์ผ๋ง ๋ถ๋ฆฌํ๋ค.
Docker ๊ตฌ์กฐ
์ปดํจํฐ {
์ด์์ฒด์ (OS) {
๋์ปค {
์ปจํ
์ด๋ 1 { ... }
์ปจํ
์ด๋ 2 { ... }
์ปจํ
์ด๋ 3 { ... }
...
}
}
}
# ์ปดํจํฐ -> os -> ๋์ปค -> ์ปจํ
์ด๋
# ๋์ปค๋ก ๋ง๋ค์ด์ง ๊ฐ๋ฐํ๊ฒฝ์ ์ปจํ
์ด๋๋ผ๊ณ ๋ถ๋ฆฌ๊ณ , ๊ด๋ฆฌ๋์ด์ง๋ค.
๊ธฐ์กด ๊ฐ์๋จธ์ ๊ตฌ์กฐ
์ปดํจํฐ {
์ด์์ฒด์ (OS) {
๊ฐ์ ์ด์์ฒด์ (OS) 1 { ... }
๊ฐ์ ์ด์์ฒด์ (OS) 2 { ... }
๊ฐ์ ์ด์์ฒด์ (OS) 3 { ... }
...
}
}
# docker์๋ ๋ค๋ฅด๊ฒ, ์ด์์ฒด์ ๋ฅผ ๋ฐ๋ก ์ค์นํ๋ฏ๋ก, ์ฉ๋์ด ํฌ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์๋๊ฐ ๋๋ฆฌ๋ค.
# ์ปดํจํฐ -> os -> os -> ์ฑ
[Docker] ๊ธฐ์กด์ VM๊ณผ Docker์ ๊ตฌ์กฐ ๋น๊ต
ํ์ดํผ ๋ฐ์ด์ ๋? [๊ฐ์ํ๊ฒฝ] ํ์ดํผ๋ฐ์ด์ ๋? ํ์ดํผ๋ฐ์ด์ ๋? ๊ฐ์ ๋จธ์ (Virtual Machine, VM)์ ์์ฑ, ์คํํ๋ ํ๋ก๊ทธ๋จ ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฅ ํ์ดํผ๋ฐ์ด์ ์ด์์ฒด์ ์ ์ฌ๋ฌ๊ฐ์ง ์์์ ๋ถ๋ฆฌํด, VM
defineall.tistory.com
Docker ์ VM ์ฐจ์ด์
์ํฉ | ๊ธฐ์กด VM ์ด์ฉํ ์ฑ | Docker ์ด์ฉํ ์ฑ |
1๊ฐ์ง ๊ธฐ๋ฅ ๊ณ ์ฅ๋ฌ์๋ | ์ ์ฒด ์๋น์ค ์ด์ฉ๋ถ๊ฐ | ๋๋จธ์ง ์๋น์ค ์ด์ฉ๊ฐ๋ฅ |
์๋ก์ด ์ฑ ๋ง๋ค๋ | OS ์ค์น ( ์ฉ๋ ํผ ) | ์ปจํ ์ด๋ ์ค์น ( bins/libs , app - ์ฉ๋ ์์ ) |
๊ธฐ๋ฅ์ด ๊ฐ์ ์๋น ์ฑ ๋ง๋ค๋ | ์ฒ์๋ถํฐ ์๋ก ๊ตฌ์ฑ | ๋์ปค ์ด๋ฏธ์ง ํ์ผ ์ด์ฉํด ๊ฐ๋จํ ๊ตฌ์ฑ |
๐ Docker ์ฌ์ฉ๋ฒ
Docker ์ค์นํ๊ธฐ
Docker Desktop overview
docs.docker.com
์๋์ฐ, ๋ฆฌ๋ ์ค, MacOS ๋ง๋ค ์ค์น๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ค.
๐ Docker Image๋? / ๋ช ๋ น์ด
Docker ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ค๊ณ๋
Image ๊ฒ์
# centos image๋ฅผ ๊ฒ์ํ๋ค.
docker search centos
Image ๋ค์ด๋ก๋
# centos:latest(์ต์ ์
๋ฐ์ดํธ ๋ฒ์ ) image๋ฅผ ๋ค์ด๋ฐ๋๋ค
docker pull centos:latest
๋ค์ด๋ฐ์ Image ํ์ผ ๋ชฉ๋ก๋ณด๊ธฐ
docker images
image ์ญ์
docker rmi <์ด๋ฏธ์ง>
๐ ์ปจํ ์ด๋ ( Container )
๋์ปค๊ฐ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ, ์ฑ
์ปจํ ์ด๋๋ ์๋ก ๋ ๋ฆฝ๋ ๊ณต๊ฐ์ ์ ์ฅ๋๊ณ ,
๊ณ ์ ํ IP๋ฅผ ๊ฐ์ง๋ค.
๊ฐ๋ฐํ๊ฒฝ(์ปจํ ์ด๋)์ ์์ฑํ๋ฉด์, ์ ์ํ๊ธฐ
docker run <์ต์
> <์ด๋ฏธ์ง> <๋ช
๋ น์ด>
# [ ์ต์
]
# -i : ์ฌ์ฉ์๊ฐ ์
์ถ๋ ฅ์ ํ ์ ์๋ ์ํ๋ก ํ๋ค
# -t : ์ปจํ
์ด๋ ์์์ ํฐ๋ฏธ๋ ํ๊ฒฝ์ ์ฌ์ฉํ๊ฒ ๋ค
# -d : ์ปจํ
์ด๋๋ฅผ ๋ฐ๋ชฌํ๋ก์ธ์ค ํํ๋ก ์คํ ( ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ )
# --name "์ด๋ฆ" : ์ปจํ
์ด๋์๊ฒ ๋ณ๋ช
์ ๋ถ์ฌ์, ์ฌ์ฉ์๊ฐ ํ์ฉํ๊ธฐ ํธํ๋๋ก ๋ง๋ ๋ค.
# -e "ํ๊ฒฝ๋ณ์": ์ปจํ
์ด๋์ ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํ๋ค.
# -p : host์ ์ปจํ
์ด๋๋ฅผ ํฌํธ๋ก ์ฐ๊ฒฐ. 80(ํธ์คํธ):80(์ปจํ
์ด๋)
# -v : host์ ํน์ ๊ฒฝ๋ก๋ฅผ ์ปจํ
์ด๋์ ํน์ ๊ฒฝ๋ก๋ก ์ฐ๊ฒฐ(๋ง์ดํธ)ํด์ค๋ค.
# -w : Dockerfile์ workdir๋ฅผ ์ค์ ํ๋ค.
# [ ์ค๋ช
]
# ๋ช
๋ น์ด ์คํ์ด ์ข
๋ฃ๋๋ฉด, ์ปจํ
์ด๋๋ ๊ฐ์ด ์ข
๋ฃ (-d ์ต์
์ผ๋ก ์ข
๋ฃ์๋๊ฒ ํ ์ ์์)
# ์ด๋ฏธ์ง์ ํ๊ทธ๋ฅผ ์ง์ ํด๋์ผ๋ฉด, ํ๊ทธ๋ก ์ปจํ
์ด๋ ์์ฑ์ด ๊ฐ๋ฅ
์ปจํ ์ด๋ ๋ชฉ๋ก ํ์ธํ๊ธฐ
docker ps -a
# -a : ์ค์ง๋์ด ์๋ ์ปจํ
์ด๋๋ ์ถ๋ ฅ
# -s : ์ปจํ
์ด๋์ ๋์คํฌ ์ฌ์ฉ๋๋ ์ถ๋ ฅ
# -f "์กฐ๊ฑด" : ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ถ๋ ฅ
์ปจํ ์ด๋ ์ค์งํ๊ธฐ
# ์ปจํ
์ด๋ : CONTAINER ID or ์ปจํ
์ด๋ ํ๊ทธ
docker stop <์ปจํ
์ด๋>
# -a : ๋ชจ๋ ์ปจํ
์ด๋ ์ข
๋ฃ
์ค์ง๋ ์ปจํ ์ด๋ ์์ํ๊ธฐ
docker start <์ปจํ
์ด๋>
์คํ์ค์ธ ์ปจํ ์ด๋ ์๋๋ก ๋ช ๋ น์ด ์คํ
docker exec <์ต์
> <์ปจํ
์ด๋> <๋ช
๋ น์ด>
# ์ต์
# -i : ์ฌ์ฉ์ ์
์ถ๋ ฅ ๋ฐ์
# -t : ํฐ๋ฏธ๋ ์ฌ์ฉ
์ปจํ ์ด๋ ์ญ์ ํ๊ธฐ
docker rm <์ปจํ
์ด๋>
๐ Dockerfile๋ก, Image ๋ง๋ค๊ธฐ
Dockerfile ์์ฑ
# package.json ํ์ผ๊ณผ ๋์ผํ ํด๋์ ๋ง๋ , Dockerfile ์์ฑ
# FROM : ๋ฒ ์ด์ค ์ด๋ฏธ์ง ์ง์
# node:12-alpine ์ด๋ฏธ์ง์์ ์์ ( ์์ผ๋ฉด ์๋๋ค์ด )
FROM node:12-alpine
# RUN : ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ ์ ์ํํ ์ ๋ช
๋ น์ด
RUN apk add --no-cache python2 g++ make
# WORKDIR : ๋์ปค ์ด๋ฏธ์ง ์์ฑํ, ๋ช
๋ น์ด๊ฐ ์คํ๋ ๊ฒฝ๋ก ์ค์
WORKDIR /app
# COPY : host/. ๋๋ ํ ๋ฆฌ ๋ด์ฉ์, Container/. ๋๋ ํ ๋ฆฌ์ ์ถ๊ฐ
COPY . .
# yarn ์ด์ฉํด ํจํค์ง ์ค์น
RUN yarn install --production
# CMD : ์ด๋ฏธ์ง๋ก ๋ง๋ ์ปจํ
์ด๋์์ ์คํํ ๋ช
๋ น์ด ์ง์
CMD ["node", "src/index.js"]
# EXPOSE : ์ปจํ
์ด๋ ์ ์ ํฌํธ ์ค์
EXPOSE 3000
Image๋ง๋ค๊ธฐ ( Dockerfile ๋น๋ )
docker build -t getting-started .
# -t : ์ด๋ฏธ์ง์ ํ๊ทธ ์ถ๊ฐ ( getting-started )
# . : ํ์ฌ ๊ฒฝ๋ก์์ Dockerfile ์ฐพ๊ธฐ
๐ Image ๊ณต์ ํ๊ธฐ
Docker Hub ๊ฐ์
Docker Hub Container Image Library | App Containerization
We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy
hub.docker.com
Docker Hub Repository ๋ง๋ค๊ธฐ
github์ ๋์ผํ๋ค.
1. ์ด๋ฆ ์ค์
2. Public ์ ํ
๋ช ๋ น์ฐฝ์์ Docker Hub ๋ก๊ทธ์ธํ๊ธฐ
docker login -u <์ฌ์ฉ์์ด๋ฆ>
์ ๋ก๋ ํ๊ธฐ์ํด, Image ํ๊ทธ ๋ณ๊ฒฝํ๊ธฐ
docker tag getting-started <์ฌ์ฉ์์ด๋ฆ>/<Repository>
Respository์ Image ์ ๋ก๋ํ๊ธฐ
# tagname์ ์ง์ ํ์ง ์์๋ ๋จ
docker push <์ฌ์ฉ์์ด๋ฆ>/<Repository>:tagname
๐ ๋ก๊ทธ๋ณด๊ธฐ
docker logs -f <์ปจํ
์ด๋ID>