๐ ํด๋น ํฌ์คํ ์ ์๋์ ๊ฐ์๋ฅผ ๊ณต๋ถํ ๋ด์ฉ์ ๊ธฐ๋กํ์์ต๋๋ค.
https://www.inflearn.com/course/%EB%8F%84%EC%BB%A4-%EC%9E%85%EB%AC%B8/dashboard
1. ๋ฆฌ๋ ์ค ์ฐ๋ถํฌ ์๋ฒ ๋ง๋ค๊ธฐ
$ docker run ubuntu:20.04
๋ช
๋ น์ด๋ฅผ ํตํด ์ฐ๋ถํฌ 20.04 ์ปจํ
์ด๋๋ฅผ ๋ง๋ค ์ ์๋ค.
sun990520@LAPTOP-RU096RMK MINGW64 ~
$ docker run ubuntu:20.04
Unable to find image 'ubuntu:20.04' locally
20.04: Pulling from library/ubuntu
ea362f368469: Pulling fs layer
ea362f368469: Verifying Checksum
ea362f368469: Download complete
ea362f368469: Pull complete
Digest: sha256:b5a61709a9a44284d88fb12e5c48db0409cfad5b69d4ff8224077c57302df9cf
Status: Downloaded newer image for ubuntu:20.04
์์ฒ๋ผ ์ฒ์ ubuntu์ปจํ ์ด๋๋ฅผ ๋์ฐ๋ ๊ฒฝ์ฐ, ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ์ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์๋กญ๊ฒ ๋ค์ด๋ฐ๋ ๊ณผ์ ์ ํ์ธํ ์ ์๋ค.
run๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋จผ์ ์ฌ์ฉํ ์ด๋ฏธ์ง๊ฐ ์ ์ฅ๋์ด ์๋์ง ํ์ธ
-> ์ด๋ฏธ์ง๊ฐ ์๋ค๋ฉด ๋ค์ด๋ก๋(pull)ํ ํ ์ปจํ ์ด๋๋ฅผ create
-> start
(์ด๋ฐ ๊ณผ์ ์)
์ปจํ
์ด๋๋ ์ ์์ ์ผ๋ก ์คํํ์ง๋ง ์ด๋ค ์ผ์ ํ ์ง ๋ช
๋ น์ด๋ฅผ ์ ๋ฌํ์ง ์์๊ธฐ ๋๋ฌธ์ ์์ฑ๋์๋ง์ ์ข
๋ฃ๋๋ค.
(์ปจํ
์ด๋๋ ํ๋ก์ธ์ค์ด๊ธฐ ๋๋ฌธ์ ์คํ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์์ผ๋ฉด ์ข
๋ฃ๋จ --> ์ปจํ
์ด๋๋ ๋จ์ํ ํ๋ก์ธ์ค๋ค์ ๊ฒฉ๋ฆฌํด๋์ ๊ฒ)
docker run --rm -it ubuntu:20.04 /bin/sh
๋ช
๋ น์ด๋ก /bin/sh๋ฅผ ์คํํ ์ ์๋ค.
sh๋ฅผ ์คํํ์ฌ ์ปจํ
์ด๋ ๋ด๋ถ์ ๋ค์ด๊ฐ๋ฉด ํค๋ณด๋๋ฅผ ์
๋ ฅํ ์ ์๋๋ก -it ์ต์
์ ์ค๋ค.
--rm ์ต์
์ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋๋ฉด ์ปจํ
์ด๋๊ฐ ์๋์ผ๋ก ์ญ์ ๋๋๋ก ํ๋ค.
shell ์คํฌ๋ฆฝํธ ์์์ ls ๋ช ๋ น์ด๋ฅผ ์คํํด๋ณด๋ฉด ํ์ฌ ๋ณธ์ธ์ ์ปดํจํฐ๊ฐ ์๋ ๋ค๋ฅธ ๊ฐ์์๋ฒ(์ฐ๋ถํฌ ์๋ฒ)์ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ํ๋ด๊ณ ์์์ ์ ์ ์๋ค.
exit
๋ช
๋ น์ด๋ก ์ปจํ
์ด๋๋ฅผ ์ข
๋ฃํ ์ ์๋ค.
(--rm ์ต์
์ด ์๋ ๊ฒฝ์ฐ ์ปจํ
์ด๋๊ฐ ์ข
๋ฃ๋๋๋ผ๋ ์ญ์ ๋์ง ์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ญ์ ๊ฐ ํ์ํ๋ค. ํ์์์ ๋ค์ ์ ์ํ ์ ์๋ค.)
๋์ปค๋ ๋ค์ํ ๋ฆฌ๋
์ค ๋ฐฐํฌํ์ ์คํํ ์ ์๋ค.
๊ณตํต์ ์ ๋ชจ๋ ๋์ผํ ์ปค๋์ ์ฌ์ฉํ๋ค.
2. ์น ์ดํ๋ฆฌ์ผ์ด์ ์คํํ๊ธฐ
์ด๋ฒ์๋ ์น ์ดํ๋ฆฌ์ผ์ด์
์ runํด๋ณด์.docker run --rm -p 5678:5678 hashicorp/http-echo -text="hello world"
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด "hello world"๋ผ๋ ํ
์คํธ๋ฅผ ๋ฐํํ๋ค.
(hashicorp/http-echo๋ผ๋ ๊ฒ์ hashicorp๋ผ๋ ํ์ฌ์์ ๋ง๋ ์น ์๋ฒ๋ฅผ ๋งํ๋ค.)
-p ์ต์
์ ๊ฒฝ์ฐ port๋ฅผ ์๋ฏธํ๋๋ฐ, (๋ด pc์ port):(hashicorp/http-echo์ port)์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ์์
์ ํ๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก docker run --rm -p 5679:5678 hashicorp/http-echo -text="docker!!"
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด hashicorp/http-echo ์๋ฒ๋ฅผ ๋ด pc์ 5679ํฌํธ์ ์ฐ๊ฒฐํ์ฌ "docker!!"๋ฅผ ๋ฐํํ๋ ๊ฐ์์ ์น์๋ฒ๋ฅผ ์คํ์ํฌ ์ ์๋ค.
3. MySQL ์คํํ๊ธฐ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ๊ฐ
docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
๋ช
๋ น์ด๋ก mysql ์๋ฒ๋ฅผ ์คํํด๋ณด์.
mysql์ ์๋ ํจ์ค์๋๋ฅผ ์
๋ ฅ๋ฐ๋๋ก ๋์ด์์ง๋ง EMPTY_PASSWORD=true ์์ฑ์ ๋ถ์ฌํด์ ํจ์ค์๋๋ฅผ ์
๋ ฅํ์ง ์๋๋ก ์ค์ ํ์๋ค.
--name ์ต์
์๋ ์ปจํ
์ด๋์ ์ด๋ฆ์ ์ค์ ํ ์ ์๊ณ ,
-d ์ต์ ์ ๊ฒฝ์ฐ ์๋ฒ์ ์ํ๊ฐ ๊ณ์ ํ๋ฉด์ผ๋ก ๋ณด์ด๋ ๊ฒ์ด ์๋๋ผ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ชจ๋๋ก ์คํ์ด ๋์ด ๋์ํ๊ฒ ํ๋ค.
๋๋ ์ค์ต ๋์ค์ 3306 ํฌํธ ์ค๋ณต์ฌ์ฉ ์ค๋ฅ๊ฐ ๋ ์ ๊ทธ๋ฅ ํฌํธ๋ฒํธ์ ์ด๋ฆ์ ๋ณ๊ฒฝํด๋ฒ๋ ธ๋ค. ์ฌ์ง์ฒ๋ผ ์ ์๋ํ๋ค.
docker exec -it mysql mysql
๋ช
๋ น์ด๋ฅผ ํตํด mysql์ ์ ์ํ ์ ์๋ค.
exec๋ช
๋ น์ด๋ run๋ช
๋ น์ด์ ๋ค๋ฅด๊ฒ ์คํ์ค์ธ ๋์ปค ์ปจํ
์ด๋์ ์ ์ํ ๋ ์ฌ์ฉํ๋ค.
์ปจํ
์ด๋ ์์ ssh server ๋ฑ์ ์ค์นํ์ง ์๊ณ exec๋ช
๋ น์ด๋ก ์ ์ํ ์ ์๋ค.
(ssh server๋ ๋ณด์์์ ๋ฌธ์ ๋ก ์ธํด ๊ถ์ฅํ์ง ์๋๋ค๊ณ ํ๋ค.)
๋ ์ด๋ฆ์ mysql1์ผ๋ก ๋ณ๊ฒฝํ์๊ธฐ ๋๋ฌธ์ docker exec -it mysql1 mysql
๋ผ๊ณ ์
๋ ฅํด์ฃผ์๋ค.
mysql์ ์ ์ํด์ show databases;
๋ช
๋ น์ด๋ฅผ ํตํด ์คํค๋ง๋ฅผ ํ์ธํ ์ ์๋ค.
- ์์ ํ new database ์์ฑ : create database wp CHARACTER SET utf8;
- ๊ถํ ๋ถ์ฌ : grant all privileges on wp.* to wp@'%' identified by 'wp';
- ๊ถํ ์ ์ฉ : flush privileges;
4. ์๋ํ๋ ์ค ๋ธ๋ก๊ทธ ์คํํ๊ธฐ
docker run -d -p 8080:80
-e WORDPRESS_DB_HOST=host.docker.internal
-e WORDPRESS_DB_NAME=wp
-e WORDPRESS_DB_USER=wp
-e WORDPRESS_DB_PASSWORD=wp
wordpress
๋ง์ฝ ๋์ฒ๋ผ mysql์ port๋ฅผ 3306์ด ์๋ ๋ค๋ฅธ port๋ก ๋ณ๊ฒฝํด์ฃผ์๋ค๋ฉด
-e WORDPRESS_DB_HOST=host.docker.internal:3366
์ฒ๋ผ internal:(๋ณ๊ฒฝํ port)๋ก ์์ ํ ๋ค ์คํํด์ฃผ๋ฉด ๋๋ค.
๐ ๋ง์ฝ ์ปจํ ์ด๋๋ฅผ ์๋ชป ๋ง๋ ๊ฒฝ์ฐ
docker ps
๋ช ๋ น์ด๋ก ์ญ์ ํ ์ปจํ ์ด๋id ํ์ธdocker stop ์ปจํ ์ด๋id
๋ช ๋ น์ด๋ก ํด๋น ์ปจํ ์ด๋ ์ค์งdocker rm ์ปจํ ์ด๋id
๋ช ๋ น์ด๋ก ํด๋น ์ปจํ ์ด๋ ์ญ์
(์ด๋ฏธ์ง๋ ์ญ์ ํ ํ์ ์์)
๋ธ๋ผ์ฐ์ ์์ localhost:8080๋ก ์ ์ํ๋ฉด ์๋ํ๋ ์ค ํ๋ฉด์ด ๋ฌ๋ค!
๊ณ์ํด์ ์๋ํ๋ ์ค ๊ณ์ ์ ๋ง๋๋ ์์ ๊น์ง ์งํํด๋ณด์. ๋๋ ์ฌ์ฉ์๋ช ์ taeong์ผ๋ก ํด์ ๊ณ์ ํ๋๋ฅผ ์์ฑํ๋ค.
์ง๊ธ๊น์ง ํ ์์ ๋ค์ ๋ฆฌ๋ทฐํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
1. ๋ก์ปฌ์์ mysql ์ปจํ ์ด๋ ๋์
2. mysql ์ปจํ ์ด๋์ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑํจ
3. wordpress ์ปจํ ์ด๋ ๋์
4. wordpress ๊ณ์ ์ ์์ฑํจ
๊ทธ๋ผ docker exec -it mysql1 mysql
๋ช
๋ น์ด๋ก ๋ค์ mysql์ ์ ์ํด์ ์๋ํ๋ ์ค ๊ณ์ ์ด ์ ๋๋ก ์์ฑ๋์๋์ง ํ์ธํด๋ณด์.
mysql์ ์ ์ํ๋ค๋ฉด ์๋์ sql๋ฌธ์ ํตํด ์ ์ ์ ๋ณด๋ฅผ ํ์ธํ๋ค.
show databases;
use wp
show tables;
select * from wp_users;
select์ฟผ๋ฆฌ๋ฅผ ํตํด ์ฌ์ฉ์ ์ด๋ฆ์ด taeong์ธ ๊ณ์ ์ด ํ ์ด๋ธ ์์ ์ ๋๋ก ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
'DevOps > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] ๋์ปค ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ1 (0) | 2022.01.20 |
---|---|
[Docker] ๋์ปค ์ปดํฌ์ฆ ์ฌ์ฉํ๊ธฐ (0) | 2022.01.18 |
[Docker] network์์ฑ๊ณผ volume mount (-v) ๋ช ๋ น์ด (0) | 2022.01.18 |
[Docker] ๋์ปค, ์ปจํ ์ด๋์ ํน์ง (0) | 2021.09.16 |
[Docker] ๋์ปค ์ ๋ฌธํ๊ธฐ (๊ฐ๋ , ๋ฑ์ฅ๋ฐฐ๊ฒฝ, ๊ธฐ๋ฅ) (0) | 2021.09.15 |
๋๊ธ