๐ ๊ณต๋ถ ๊ณ๊ธฐ
์ํฐ๋ ์ฑ๋ฆฐ์ง๊ฐ ์ด๋ฒ ๋ฌ ์ ๊ณตํ๋ ๊ฐ์๋ Docker! Docker ๊ฐ์๊ฐ ์ด 4๋ฒ ์ด๋ฃจ์ด์ง๋ ๋ฐ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
Docker ๊ฐ์ 1 :
๋ชฉ์ฐจ
๐์ด๋ก ํธ : ๋์ปค ๊ฐ๋
* ๋์ปค ๊ณต์ ํํ์ด์ง
Docker: Accelerated, Containerized Application Development
Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code.
www.docker.com
๋์ปค ์ด๋ก ํธ์ ์ด์ ๋์ปค ๊ฐ๋ ์ ์ ๋ฆฌํ ํฌ์คํ ์ ๊ณ ๋ณํ๋์ ๊ฐ์๋ด์ฉ์ ์ถ๊ฐํด ์ ๋ฆฌ
Docker] ๊ฐ๋
๐ ๊ณต๋ถ ์ด์ ์ค์ ํ๋ก์ ํธํ๋ฉด์ ๋ฐฑ์๋๋ฅผ ๊ณ ๋ํํ๋ฉด์ ์ฌ๋ฌ๊ธฐ์ ์ ๋์ ํด๋ณด๊ณ ์๋ค. Docker๋ ๊ทธ ์ค ํ๋๋ก, ์ด๋ฆ๋ง ์๊ณ ๋ญํ๋ ๋ ์์ธ์ง ์ ํ ๋ชฐ๋๊ธฐ ๋๋ฌธ์ ๋จผ์ ๊ฐ๋ ์ ๊ณต๋ถํด๋ณด๊ณ ์ค์ต
littlezero48.tistory.com
๐์ค์ตํธ 1 : ๊ธฐ๋ณธ CLI
๊ณต์ ํํ์ด์ง์ Command-line reference (๊ณต์ ํํ์ด์ง๋ฅผ ๊ณต๋ถํ์!)
Docker run reference
docs.docker.com
0๏ธโฃ ์ฌ์ ์ค๋น
๐ข ์ฐธ๊ณ : ์ ๋ ์๋์ฐ์ ๋ฆฌ๋ ์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ WSL2 ์ค์นํ ํ๊ฒฝ์์ ์งํ ํ์ต๋๋ค.
* ํ์์์์ ๋ช ๋ น์ด wsl ์ ์ or Ubuntu on Windows ์คํ
* Docker Desktop ์คํ๋ ํด์ค์ผ ํจ
![](https://blog.kakaocdn.net/dn/b5Jn6P/btr8ZUQGWGF/0Hk5XwH4P3D1p0fKjSzPS1/img.png)
![](https://blog.kakaocdn.net/dn/caKwhm/btr8KKvQrf4/lHzCcokIz9swDPVwmjBfKk/img.png)
1๏ธโฃ ๋์ปค ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- Docker hub๋ก ๋ถํฐ httpd ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ์ ๋ณธ๋ค
docker pull ์ด๋ฏธ์ง์ด๋ฆ
- pullํ๊ณ ๋์ ์ด๋ฏธ์ง ์กฐํ ํ๋ฉด ์ถ๊ฐ๋ ๊ฑธ ํ์ธ ํ ์ ์๋ค
2๏ธโฃ ์ด๋ฏธ์ง๋ฅผ ํตํด ์ปจํ ์ด๋ ์์ฑ
- run ๋ช ๋ น์ด๋ฅผ ํตํด ํด๋น ์ด๋ฏธ์ง์ ๋ํ ์ปจํ ์ด๋ ์์ฑ
* ์ฃผ์ : httpd ๊ฐ์ ๊ฒฝ์ฐ run ์ํค๋ฉด ์ด ํ๋ฉด์ ๋ ์ด์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. ํ๋ฉด์ ๋ถํ ํด์ ์ดํ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด๋ณด์
(์๋๋ฉด d ์ต์ ์ ํจ๊ป ์ฃผ์ด ๋ฐ๋ชฌ๋ชจ๋๋ก run!)
โ ํ๋ฉด ๋ถํ ๋ฐฉ๋ฒ
๋ฐฉ๋ฒ1) ํญ ํ์ดํ์์ ์ค๋ฅธ์ชฝ ํด๋ฆญ (๋จ, ์ธ๋ก -> ๊ฐ๋ก -> ์ธ๋ก -> ... ์์ผ๋ก ๋ถํ )
![](https://blog.kakaocdn.net/dn/bHBfUb/btr8T5d4Iat/rXlp0vDN4iOkT2Emqx9fok/img.png)
๋ฐฉ๋ฒ2) Ctrl + Shift + P ๋ก ๋ช ๋ น ๋๊ตฌ ๋ชจ์์ ์คํํด์
![](https://blog.kakaocdn.net/dn/bpytL3/btr8OVbLtBD/VKneVYYJAHNFIdWYE9kzxk/img.png)
![](https://blog.kakaocdn.net/dn/bbhVfw/btr8OWuZlvo/2EFxCr6NOUIIQ6TLbxDxQk/img.png)
![](https://blog.kakaocdn.net/dn/OqD4T/btr8KH6Ndz7/sZC9kO9sSqKDRKvDcs8G6k/img.png)
โ ๊ฒฐ๊ณผ
![](https://blog.kakaocdn.net/dn/cSIhEk/btr8Mn0VsRw/LVFckG9gPr4DkXfyttwcVK/img.png)
- ์ปจํ ์ด๋ ์คํ ํ์ธ (์ด๋ฆ ์ค์ ์ ์ํ๋ฉด container name์ ์์๋ก ๊ฒฐ์ ๋จ)
docker ps
- ์ด๋ฆ์ต์ ์ ์ฌ์ฉํด ์ปจํ ์ด๋ ์ด๋ฆ์ ์ค์ ํ๊ณ ์ปจํ ์ด๋ ์์ฑ (secondContainer ๋ผ๋ ์ด๋ฆ์ผ๋ก)
docker run --name ์ปจํ
์ด๋์ด๋ฆ ์ฌ์ฉํ ์ด๋ฏธ์ง์ด๋ฆ
3๏ธโฃ ์ปจํ ์ด๋์ ํฌํธ์ ์ฐ๋์ํค๊ธฐ (Port Forwarding) 1
- ์ปจํ ์ด๋ ์์ฑ์ p ์ต์ ์ผ๋ก LocalPort : ContainerPort ๋ก ํด์ ํฌํธ๋ฅผ ์ฐ๊ฒฐํ๋ค.
docker run -p ๋ก์ปฌํฌํธ:์ปจํ
์ด๋ํฌํธ --name ์ปจํ
์ด๋์ด๋ฆ ์ฌ์ฉํ ์ด๋ฏธ์ง์ด๋ฆ
4๏ธโฃ ์ด๋ฏธ์ง ๋ด๋ถ์ ํ์ผ์ ๊ต์ฒดํ๊ธฐ
- ๊ต์ฒดํ๋ ค๋ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ์ฐพ์๊ฐ
- ํด๋น ๋๋ ํ ๋ฆฌ์ ๋ํด VScode ์คํ
code .
- ์ ๊ฒฝ๋ก์ index.html์ ์๋นํ๋๋ก ๊ต์ฒดํ๊ณ ์ถ๋ค!
v ์ต์ ์ ํตํด์ ๋ณผ๋ฅจ ๋ง์ดํธ๊ฐ ๊ฐ๋ฅํ๋ฐ ์ด๊ฒ ์ด๋ฏธ์ง์ ํ์ผ์ ํธ์คํธ์ ํ์ผ๋ก ๋ฎ์ด์์ฐ๋ ๊ฑธ ๋งํ๋ค.
์ฌ๊ธฐ์ -v HostPath : ContainerPath ๋ก ์์ HostPath๋ ๋ฎ์ด์์ธ ํ์ผ์ด ์๋ ๊ฒฝ๋ก๋ก
๋ด๊ฐ ๋ฎ์ด์์ฐ๋ ค๋ ๊ฒฝ๋ก๋ ์๋ ๊ทธ๋ฆผ์ ํ๋์ ๊ธ์ ๋ถ๋ถ๊ณผ ๊ฐ๋ค.
ํธ์คํธ ๊ฒฝ๋ก ๋ฐฉ์ ์ ์ฉ์ ์๋์ฐ๋ ์ฐ๋ถํฌ๋ ๋ค๋ฅด๋ ์ฐธ๊ณ !
5๏ธโฃ ์ปจํ ์ด๋ STOP
docker stop ์ปจํ
์ด๋ID
docker stop ์ปจํ
์ด๋์ด๋ฆ
6๏ธโฃ ์ปจํ ์ด๋ START
run ์ฒ๋ผ ์ปจํ ์ด๋ ์์ฑ๊ณผ ๋์์ ์คํํ๋ ๊ฒ ์๋ ๋ฉ์ถค ์ปจํ ์ด๋๋ฅผ ๋ค์ ์คํ์ํค๋ ๋ช ๋ น์ด
- ์ผ๋จ docker ps๊ฐ ์คํ๋๊ณ ์๋ ์ปจํ ์ด๋๋ง ์กฐํํ๋ค๋ฉด ์ฌ๊ธฐ์ -a ์ต์ (all)์ ๋ถ์ฌ ์คํ์ฌ๋ถ์ ์๊ด์์ด ์์ฑ๋์ด์๋ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์กฐํํ๋ค.
docker ps -a
- ์คํ
STATUS๋ฅผ ๋ณด๋ฉด Exited ์์ Up์ผ๋ก ๋ณ๊ฒฝ๋๋ฉฐ ์คํ
docker start ์ปจํ
์ด๋ID
docker start ์ปจํ
์ด๋์ด๋ฆ
7๏ธโฃ ์ปจํ ์ด๋ ์ ๊ฑฐ
rm ๋ช ๋ น์ด (remove) ๋ฅผ ์ฌ์ฉํด ์ปจํ ์ด๋ ์ ๊ฑฐ
docker rm ์ปจํ
์ด๋ID
docker rm ์ปจํ
์ด๋์ด๋ฆ
๋๋ค ์ง์ฐ๊ณ ๋๋ ps -a ์ ์๋ฌด๊ฒ๋ ์๋์ค๋ ๊ฒ ํ์ธ!
+ ์ฐธ๊ณ ๋ก ์คํ ์ค์ธ ์ปจํ ์ด๋๋ ์ญ์ ํ ์ ์๋ค. stop์ผ๋ก ์ ์งํ๊ณ ์ง์ธ ๊ฒ
8๏ธโฃ ์ด๋ฏธ์ง ์ ๊ฑฐ
rmi ๋ช ๋ น์ด (remove image) ๋ฅผ ์ฌ์ฉํด ์ด๋ฏธ์ง ์ ๊ฑฐ
docker rmi ์ด๋ฏธ์ง์ด๋ฆ
+ ์ด๋ฏธ์ง ์ญ์ ์ด ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ์ปจํ ์ด๋๊ฐ ์กด์ฌํ๋ค๋ฉด ์ง์ธ ์ ์๋ค. ํด๋น ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ ์ปจํ ์ด๋๋ฅผ ๋ชจ๋ ์ง์์ผ ์ ๊ฑฐ ๊ฐ๋ฅ
๐์ค์ตํธ 2 : ์ปค์คํ ์ด๋ฏธ์ง ์์ฑ
Dockerfile reference
docs.docker.com
์ค์ต ๋ด์ฉ
httpd ์ด๋ฏธ์ง๋ฅผ pull ๋ฐ์ ์ค์ต 1๋ ์ฒ๋ผ index.html์ ๊ต์ฒดํ๊ณ ํฌํธํฌ์๋ฉ๊น์ง ํด์ run ํ๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑ
1๏ธโฃ ๋์ปค ํ์ผ ์์ฑ
๋์ปคํ์ผ์ yaml(์ผ๋ฏ)ํ์ผ๋ก ๋ง๋ค์ด์ง๋ค
yamlํ์ผ ๋ช ๋ น์ด๋ ARG(ํ๊ฒฝ๋ณ์), From(๋ฒ ์ด์ค์ด๋ฏธ์ง), CMD(๋ช ๋ น ์คํ) ๋ฑ์ด ์๋๋ฐ ์์ ๊ณต์ ํํ์ด์ง์ ๋ ๋ง์ด ์๋ค. ์ด๋ฒ์ ๊ฐ๋ตํ๊ฒ 3๊ฐ์ง ๋ช ๋ น์ด ๋ง์ ์ฌ์ฉํ์ฌ ์ค์ต!
* ๋์ปคํ์ผ
FROM : httpd:latest ์ด๋ฏธ์ง๋ฅผ ๋ฒ ์ด์ค๋ก
COPY : host ํ์ฌ ๊ฒฝ๋ก์ index.html ํ์ผ์ ์ปจํ ์ด๋์ /usr/local/apache2/htdocs/index.html์ ๊ฒฝ๋ก๋ก ๋ณต์ฌํ๋ค
EXPOSE : ๊ทธ๋ฆฌ๊ณ 80ํฌํธ๋ฅผ ์ฐ๋ค
2๏ธโฃ ๋์ปค ์ด๋ฏธ์ง ์์ฑ
build ๋ช ๋ น์ด๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ฉฐ ์๋ก ์์ฑํ๋ ์ด๋ฏธ์ง๋ -t ์ต์ (tag)์ ํตํด ์ด๋ฏธ์ง ์ด๋ฆ์ด ์ค์ ๋๊ณ
๊ฒฝ๋ก ๊ฒฝ์ฐ ํ์ฌ ๊ฒฝ๋ก๋ก ๋ถํฐ์ ์์น๋ฅผ ๋งํ๋ ๊ฒ์ผ๋ก ์ด๋ฏธ ๊ทธ ์์น์ ์์๊ธฐ ๋๋ฌธ์ . ์ผ๋ก ํํ
docker build -t ์ด๋ฏธ์ง์ด๋ฆ ๊ฒฝ๋ก
3๏ธโฃ ์ปค์คํ ํ ์ด๋ฏธ์ง ์คํ
๋ณผ๋ฅจ ๋ง์ดํธ ๊ณผ์ ์์ด ๋ฐ๋ก ์ปค์คํ index.html๋ก ์ ์ฉ๋ ๊ฑธ ๋ณผ ์ ์๋ค.
์ด๋ฐ์์ผ๋ก ๋ง๋ ๊ฒ์ docker hub์ ์ฌ๋ ค ์ธ์ ๋ ๋ค์ด๋ฐ์ ์ฌ์ฉ๋ ๊ฐ๋ฅํ๋ค.
์ฒซ๋ฒ์งธ ๊ฐ์ ๋
ํฌํธํฌ์๋ฉ์ด๋?
์ธ๋ถ ์ฃผ์์ ๋ด๋ถ ์ฃผ์๋ฅผ ์ด์ด์ฃผ๋ ๊ฒ [๋ณธ๋ฌธ์ผ๋ก]
'DevOps > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ๋ฐฐ๋ ๋์ปค ์๋ฆฌ์ฆ 0~3-2] ๋์ปค ์ดํด๋ณด๊ธฐ (0) | 2023.04.12 |
---|---|
์ํฐ๋ ์ฑ๋ฆฐ์ง Docker 2] ๋ก์ปฌํ๊ฒฝ์์ ๋์ปค๋ฅผ ํ์ฉํด๋ณด์! (0) | 2023.04.09 |
Docker] ๊ฐ๋ (0) | 2023.04.08 |
Docker] ์ด๋ฏธ์ง pull + ์ปจํ ์ด๋ ์ฌ์ฉ (2) | 2023.01.18 |
Docker] ์ค์น (0) | 2023.01.17 |