๐ Docker ์ ๋ฌธ โ ก - ๋ช ๋ น์ด ๋ฐ ์ค์ต
๐ Docker ์
๋ฌธ โ
ก - ๋ช
๋ น์ด ๋ฐ ์ค์ต
๐
ใ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ Docker & ์ฟ ๋ฒ๋คํฐ์คใ
๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
Docker
์์ง ์คํ ๋ฐ ์ข
๋ฃ
Docker
์์ง์ ์ปดํจํฐ๋ฅผ ๋ถํ ํ ๋ ์๋์ผ๋ก ์คํํ ์ ์์ง๋งContainer
๋ ๊ทธ๋ ์ง ์๋ค.Docker
์์ง์ด ์๋ ์ค์ด๋๋ผ๋Container
๋ฅผ ์คํ ์ค์ด ์๋๋ผ๋ฉด ์ปดํจํฐ์ ๋ฆฌ์์ค๋ฅผ ๊ฑฐ์ ์ฐจ์งํ์ง ์๋๋ค.Docker
์์ง ์คํ :Docker Desktop
์คํDocker
์์ง ์ข ๋ฃ : ์์ ํ์์ค ์ฐ์ธก์Task-tray
์์Docker DeskTop
์์ด์ฝ ์ฐํด๋ฆญ ํQuit Docker Desktop
ย ํด๋ฆญ
Docker
๋ช
๋ น์ด
Container
๋ฅผ ๋ค๋ฃจ๋ ๋ชจ๋ ๋ช ๋ น์ด๋docker
๋ก ์์ํ๋ค.docker
๋ช ๋ น์ด ๋ค๋ก ๋ฌด์์, ์ด๋ป๊ฒ, ๋์ ์์ผ๋ก ์ ๋ ฅํ๋ฉด ๋๋ค.- ๊ธฐ๋ณธ์ ์ธ ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ ํํ๋ฅผ ๋ค๋ค.
1
2
# docker [์์์ปค๋งจ๋] ํ์์ปค๋งจ๋ [์ต์
] ๋์ [์ธ์]
docker container run -d penguine
- ์ต์ ์ ์ปค๋งจ๋์ ์ธ์ธํ ์ค์ ์ ์ง์ ํ๋ ์ฉ๋๋ก ์ฐ์ธ๋ค.
- ์๋ฅผ ๋ค์ด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํ ๋๋ -d
, ํค๋ณด๋๋ก ์กฐ์ํ๋ ค๋ฉด
-iย ๋๋
-t`๋ฅผ ๋ถ์ธ๋ค. - ์ต์
์
-dit
์ฒ๋ผ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. - ์ธ์๋ ๋์์ ์ ๋ฌํ ๊ฐ์ ์ง์ ํ๋ค.
- ์๋ฅผ ๋ค์ด ๋ฌธ์ ์ฝ๋ ๋๋ ํฌํธ ๋ฒํธ ๋ฑ์ ์ ๋ฌํ ์ ์๋ค.
Docker
Container
์์ฑ, ์ญ์ , ์คํ, ์ ์ง
โ
์คํ - docker run image
docker image pull
,docker container create
,docker container start
๋ฅผ ํ๊บผ๋ฒ์ ์ํํ ๊ฒ๊ณผ ๋์ผํ๋ค.- ํด๋น
๋ฅผ ๋ค์ด ๋ฐ์ ์ํ๊ฐ ์๋๋ผ๋ฉด ๋จผ์
Image`๋ฅผ ๋ค์ด ๋ฐ๋๋ค. - ๋ฐ์ดํฐ๋ฒ ์ด์ค
Image
๋ฅผ ์คํํ ๊ฒฝ์ฐ-e
ย ์ต์ ์ ํตํด ๋ฃจํธ ํจ์ค์๋๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๊ธฐ๋ ํ๋ค.
โ
์ ์ง - docker stop container
Container
๋ฅผ ํ๊ธฐํ๋ ค๋ฉด ๋จผ์ Container
๋ฅผ ์ ์งํด์ผ ํ๋ค.
โ
์ญ์ - docker rm container
- ์คํ ์ค์ธ
Container
๋ฅผ ์ญ์ ์๋ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉฐContainer
๊ฐ ์ญ์ ๋์ง ์๋๋ค.
Container
์ข
๋ฅ
-it
๋Container
๋ด๋ถ ํฐ๋ฏธ๋๋ก ์ ์ ๋๋ ํ์ผ ์์คํ ์ ๋ค๋ฃจ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ต์ ์ด๋ค.- ํ ๋ฒ๋ง ์คํ๋๋
Container
๋ ์คํ๋์๋ง์ ์ข ๋ฃ๋๋ฏ๋กContainer
๊ฐ ํฐ๋ฏธ๋์ ์ ์ด๋ฅผ ์ฐจ์งํ๋๋ผ๋ ์ผ์์ ์ธ ๊ฒ์ด๋ฏ๋ก ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค. - ํ์ง๋ง ๊ณง์ฅ ์ข ๋ฃ๋๋ ์์คํ ์ด๋ผ๋ฉด ํ์ผ ์์คํ ์ ์ ๋ ์ผ๋ ์์ผ๋ฏ๋ก ํ์์๋ ์ต์ ์ด ๋๋ค.
- ๋ฐ๋ชฌ์ฒ๋ผ ๊ณ์์ ์ผ๋ก ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ์ ์ ๋ก ์ข ๋ฃ๋์ง ์์ผ๋ฏ๋ก ํ๋ฒ ํฐ๋ฏธ๋์ ์ ์ด๋ฅผ ๋๊ธฐ๋ฉด ์ด๋ฅผ ๋์ฐพ์์ค๊ธฐ๊ฐ ๋ฒ๊ฑฐ๋กญ๋ค.
Container
๋ชฉ๋ก ์ถ๋ ฅ
docker ps
- ํ์ฌ ์คํ ์ค์ธContainer
๋ชฉ๋ก์ ์ถ๋ ฅํ๋ค.-a
ย ์ต์ - ํ์ฌ ์กด์ฌํ๋ ๋ชจ๋Container
๋ชฉ๋ก์ ์ถ๋ ฅํ๋ค.
Container
์ ํต์
- ์ธ๋ถ๋ก๋ถํฐ
Container
์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉดContainer
๋ฅผ ์คํํ ๋ ์ค์ ์ด ํ์ํ๋ค. ๋ฐ๋ก ํฌํธ ๋ฒํธ๋ฅผ ์ค์ ํ๋ ๊ฒ์ด๋ค. Apache
ย ์น ์๋ฒ๋80
๋ฒ ํฌํธ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.- ํ์ง๋ง
Container
์์ ๊ฒฉ๋ฆฌ๋์ด ์์ผ๋ฏ๋ก ์ธ๋ถ์์๋ ๋ค๊ฐ๊ฐ ์ ์๋ค. - ์ด ๋๋ ๋ค์๊ณผ ๊ฐ์ด
Container
๋ฅผ ์คํํ๋ฉด ๋๋ค.
1
docker run --name container01 -d -p 8080:80 httpd
- ์ด์ ๋ ์ธ๋ถ์์
8080
ย ํฌํธ ๋ฒํธ์ ์ ๊ทผํ๋ฉด ํธ์คํธPC
๊ฐContainer
์Apache
์ ์์ฒญ์ ์ ๋ฌํด์ค๋ค. - ๋ง์ฝ ์ฌ๋ฌ ๊ฐ์
Container
๋ฅผ ์ฒ๋ฆฌํ๋ค๋ฉด ํธ์คํธ ํฌํธ ๋ฒํธ๋ฅผ ๋ชจ๋ ๋ค๋ฅด๊ฒ ํด์ฃผ์ด์ผ ํ๋ค. Container
ํฌํธ ๋ฒํธ๋Image
์ ์์๊ฐ ์ ํ ๋ฒํธ๋ก ํด์ผ ํ๋ค.
Image
์ญ์
Image
๋ฅผ ํตํดContainer
๋ฅผ ๋ง๋ค์ด ๋ธ ํContainer
๋ฅผ ์ญ์ ํ๋ค๊ณ ํด์Image
๊น์ง ๊ฐ์ด ์ ๊ฑฐ๋์ง ์๋๋ค.Image
๊ฐ ๋์ ๋๋ฉด ์คํ ๋ฆฌ์ง ์ฉ๋์ ์๋ฐํ๋ฏ๋ก ์ ๋ ์ญ์ ํ๋ ๊ฒ์ด ์ข๋ค.- ํด๋น
Image
๋ก ์์ฑ๋Container
๊ฐ ์๋ค๋ฉดImage
๋ฅผ ์ญ์ ํ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋กContainer
๋ฅผ ์ญ์ ํImage
๋ฅผ ์ญ์ ํด์ผ ํ๋ค. Image
๋ฅผ ์ญ์ ํ๊ธฐ ์ํด์๋docker image rm
ย ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.- ์ด ์ปค๋งจ๋๋
docker rm
๊ณผ ๊ฐ์ด ์๋ตํ ์ ์๋ค. docker rm
์docker container rm
์ ์๋ตํ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
Image
ํ์ธ
1
docker image ls
docker ps
์๋ ๋ฌ๋ฆฌ ์คํ ์ค, ์ข ๋ฃ ์ํ๊ฐ ์์ผ๋ฏ๋ก-a
์ต์ ๋ ์กด์ฌํ์ง ์๋๋ค.- ์ฌ๋ฌ ๋ฒ์ ์
Image
๊ฐ ์กด์ฌํ ๋ ํน์ ๋ฒ์ Image
๋ฅผ ์ญ์ ํ ๊ฒฝ์ฐdocker image rm httpd:2.2
์ ๊ฐ์ด ๋ฒ์ ์ ํน์ ํด์ฃผ์ด์ผ ํ๋ค.
Docker
๋คํธ์ํฌ
1
2
3
4
5
6
7
8
# ๋คํธ์ํฌ ์์ฑ
docker network create [๋คํธ์ํฌ ์ด๋ฆ]
# ๋คํธ์ํฌ ํ์ธ
docker network ls
# ๋คํธ์ํฌ ์ญ์
docker network rm [๋คํธ์ํฌ ์ด๋ฆ]
Container
๋ฅผ ์ฌ๋ฌ ๊ฐ ๋๋ค๊ณ ํด์ ์๋์ผ๋ก ๋คํธ์ํฌ๊ฐ ์ฐ๊ฒฐ๋์ง ์๋๋ค.
์๋ํ๋ ์ค ๊ตฌ์ถ ์ค์ต
โ ๊ฐ์
- ์๋ํ๋ ์ค
Image
์MySQL
Image
๋ฅผ ํตํด ๋ ๊ฐ์Container
๋ฅผ ์์ฑ ๋ฐ ์คํํ๋ค. - ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ์ฌ ๋
Container
๋ฅผ ์ฐ๊ฒฐํ๋ค.
โ ๊ณผ์
1
2
3
4
5
6
7
8
# 1. ๋คํธ์ํฌ ์์ฑ
docker network create wordpress000net1
# 2. MySQL `Image` ์คํ
docker run --name mysql000ex11 -dit --net=wordpress000net1 -e MYSQL_ROOT_PASSWORD=1234 -e MYSQL_DATABASE=wordpress000db -e MYSQL_USER=์์ด๋ -e MYSQL_PASSWORD=ํจ์ค์๋ mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# 3. Wordpress `Image` ์คํ
docker run --name wordpress000ex12 -dit --net=wordpress000net1 -p 8085:80 -e WORDPRESS_DB_HOST=mysql000ex11 -e WORDPRESS_DB_NAME=wordpress000db -e WORDPRESS_DB_USER=์์ด๋ -e WORDPRESS_DB_PASSWORD=ํจ์ค์๋ wordpress
๋ ๋๋ง์ธ ๊ตฌ์ถ ์ค์ต
1
2
3
4
5
6
7
8
# 1. ๋คํธ์ํฌ ์์ฑ
docker network create redmine000net3
# 2. MariaDB `Image` ์คํ
docker run --name mariadb000ex15 -dit --net=redmine000net3 -e MYSQL_ROOT_PASSWORD=1234 -e MYSQL_DATABASE=redmine000db MYSQL_USER=์์ด๋ -e MYSQL_PASSWORD=ํจ์ค์๋ mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# 3. Redmine `Image` ์คํ
docker run -dit --name redmine000ex16 --network redmin000net3 -p 8087:3000 -e REDMINE_DB_MYSQL=mariadb000ex15 -e REDMINE_DB_DATABASE=redmine000db -e REDMINE_DB_USERNAME=์์ด๋ -e REDMINE_DB_PASSWORD=ํจ์ค์๋ redmine
- http://localhost:8087 ์ ์ํ์ฌ ๋์์ ํ์ธํ์.
ํ๊ณ
1
2
3
4
5
6
7
8
9
10
11
# `Container` ๋ชจ๋ ์ค์ง
docker stop $(docker ps -a -q)
# `Container` ๋ชจ๋ ์ญ์
docker rm $(docker ps -a -q)
# `Image` ๋ชจ๋ ์ญ์
docker rmi -f $(docker images -q)
# ์ ์ฐ๋ ๋ชจ๋ ์์ ์ญ์
docker system prune -a
- ํ์๋ ์ ๋ช ๋ น์ด๋ค์ ๋ง์ด ์ฌ์ฉํ๋ค.
This post is licensed under CC BY 4.0 by the author.