Docker๋ก MySQL ์คํ์์ผ๋ณด๊ธฐ
MySQL ์ด๋ฏธ์ง๋ฅผ ๋ฐํ์ผ๋ก ์ปจํ ์ด๋ ์คํ
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -d mysql
๐ -e MYSQL_ROOT_PASSWORD=password123 : -e ์ต์
์ ์ปจํ
์ด๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ๋ ์ต์
์ด๋ค.
๐ Dockerhub์ MySQL ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ํ๊ฒฝ ๋ณ์๋ก MYSQL_ROOT_PASSWORD๋ฅผ ์ ํด์ฃผ์ด์ผ๋ง ์ ์์ ์ผ๋ก ์ปจํ
์ด๋๊ฐ ์คํ๋๋ค๊ณ ์ ํ์๋ค.
$ docker exec -it [MySQL ์ปจํ
์ด๋ ID] bash
$ echo $MYSQL_ROOT_PASSWORD # MYSQL_ROOT_PASSWORD๋ผ๋ ํ๊ฒฝ๋ณ์ ๊ฐ ์ถ๋ ฅ
$ export # ์ค์ ๋์ด ์๋ ๋ชจ๋ ํ๊ฒฝ๋ณ์ ์ถ๋ ฅ
์ปจํ ์ด๋๊ฐ ์ ์คํ๋๊ณ ์๋์ง ์ฒดํฌ
$ docker ps
์ปจํ ์ด๋ ์คํ์ํฌ ๋ ์๋ฌ ์์ด ์ ์คํ๋๋ ์ง ๋ก๊ทธ ์ฒดํฌ
$ docker logs [์ปจํ
์ด๋ ID ๋๋ ์ปจํ
์ด๋๋ช
]
๊ทธ๋ฆผ์ผ๋ก ์ดํด
MySQL ์ปจํ ์ด๋์ ์ง์ ์ ์
$ docker exec -it [MySQL ์ปจํ
์ด๋ ID] bash
์ปจํ ์ด๋์์ MySQL์ ์ ๊ทผ
$ mysql -u root -p
MySQL ์ ๊ทผ์ ์ฑ๊ณตํ๋ค๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ
mysql> show databases;
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
mysql> create database mydb;
mysql> show databases;
์ปจํ ์ด๋ ์ข ๋ฃ ํ ๋ค์ ์์ฑ
# ์ปจํ
์ด๋ ์ข
๋ฃ
$ docker stop [MySQL ์ปจํ
์ด๋ ID]
$ docker rm [MySQL ์ปจํ
์ด๋ ID]
# ์ปจํ
์ด๋ ์์ฑ
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -d mysql
$ docker exec -it [MySQL ์ปจํ
์ด๋ ID] bash
$ mysql -u root -p
mysql> show databases; # ์๊น ์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ด์ง ๊ฑธ ํ์ธํ ์ ์๋ค.
๐ ๋ณผ๋ฅจ์ ํ์ฉํ์ง ์์์ MySQL ์ปจํ ์ด๋๋ฅผ ์ญ์ ํจ๊ณผ ๋์์ MySQL ๋ด๋ถ์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ ํจ๊ป ์ญ์ ๋์ด ์์ด์ก๋ค.
๋ณผ๋ฅจ์ ํ์ฉํด์ MySQL ์ปจํ ์ด๋ ๋์ฐ๊ธฐ
$ cd /Users/seungchan/Documents/Develop
$ mkdir docker-mysql # MySQL ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ถ์ ํด๋ ๋ง๋ค๊ธฐ
# docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v {ํธ์คํธ์ ์ ๋๊ฒฝ๋ก}/mysql_data:/var/lib/mysql -d mysql
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/seungchan/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
๐ pwd ๋ช
๋ น์ด๋ก ๋ณผ๋ฅจ์ผ๋ก ์ฌ์ฉํ๊ณ ์ ํ๋ ๊ฒฝ๋ก๋ฅผ ํ์ธํ ๋ค ์
๋ ฅํด์ค์ผ ํ๋ค.
๐ ์ฃผ์!! mysql_data ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ผ๋ฉด ์๋๋ค. ๊ทธ๋์ผ ์ฒ์ ์ด๋ฏธ์ง๋ฅผ ์คํ์ํฌ ๋ mysql ๋ด๋ถ์ ์๋ /var/lib/mysql ํ์ผ๋ค์ ํธ์คํธ ์ปดํจํฐ๋ก ๊ณต์ ๋ฐ์ ์ ์๋ค. mysql_data ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ ๊ฒฝ์ฐ, ๊ธฐ์กด ์ปจํ
์ด๋์ /var/lib/mysql ํ์ผ๋ค์ ์ ๋ถ ์ญ์ ํ ๋ค์ mysql_data๋ก ๋ฎ์ด์์๋ฒ๋ฆฐ๋ค.
๐ DB์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ์ด /var/lib/mysql์ธ์ง๋ Dockerhub MySQL์ ๊ณต์ ๋ฌธ์์ ๋์์๋ค.
MySQL ์ปจํ ์ด๋์ ์ ์ํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
$ docker exec -it [MySQL ์ปจํ
์ด๋ ID] bash
$ mysql -u root -p
mysql> show databases;
mysql> create database mydb;
mysql> show databases;
์ปจํ ์ด๋ ์ข ๋ฃ ํ ๋ค์ ์์ฑ
# ์ปจํ
์ด๋ ์ข
๋ฃ
$ docker stop [MySQL ์ปจํ
์ด๋ ID]
$ docker rm [MySQL ์ปจํ
์ด๋ ID]
# ์ปจํ
์ด๋ ์์ฑ
$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/seungchan/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
$ docker exec -it [MySQL ์ปจํ
์ด๋ ID] bash
$ mysql -u root -p
mysql> show databases; # ์๊น ์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ทธ๋๋ก ์กด์ฌํ๋ ๊ฑธ ํ์ธํ ์ ์๋ค.
๊ทธ๋ฆผ์ผ๋ก ์ดํด
MySQL ์ปจํ ์ด๋ ์ญ์ ํ๊ณ ๋ค์ ๋์๋ณด๊ธฐ
# ์ปจํ
์ด๋ ์ข
๋ฃ
$ docker stop [MySQL ์ปจํ
์ด๋ ID]
$ docker rm [MySQL ์ปจํ
์ด๋ ID]
# ๋น๋ฐ๋ฒํธ ๋ฐ๊ฟ์ ์ปจํ
์ด๋ ์์ฑ
$ docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -p 3306:3306 -v /Users/seungchan/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
$ docker exec -it [MySQL ์ปจํ
์ด๋ ID] bash
$ mysql -u root -p # ์ ์์ด ์ ๋จ...