๋ฐ์ํ
docker-compose ๋ค์ด๋ก๋
- ์๋์์ ์ต์ ๋ฒ์ ํ์ธ!
sudo curl -L https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- ๊ถํ ์ค์
sudo chmod +x /usr/local/bin/docker-compose
- ์ค์น ํ์ธ
docker-compose --version
docker-compose ๋๋ ํ ๋ฆฌ ์์ฑ
์ต์ข ์ ์ธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
docker-mysql
โโโ docker-compose.yml
โโโ .env
โโโ mysql
โโโ conf.d
โ โโโ my.cnf
โโโ data
โโโ initdb.d
โโโ create_table.sql
โโโ load_data.sql
4 directories, 4 files
- docker-compose.yml : ์ปจํ ์ด๋ ์คํํ ๋, ๋์ฑ ์ฝ๊ฒ ์ค์ ํ๊ธฐ ์ํ ํ์ผ
- conf.d : MySQL ์ค์ ํ์ผ์ด ์์น
- data : MySQL ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ์์น
- initdb.d : Docker ์ปจํ
์ด๋๊ฐ ์ต์ด ์คํ ์ ๋ถ๋ฌ์ฌ
*.sh
,*.sql
๋ฑ ํ์ผ ์ด๋ฆ์ ์ฌ์ ์์๋๋ก ์คํ๋จ.
1. ์์๋ก docker-mysql
์ด๋ผ๋ ์์
๋๋ ํ ๋ฆฌ ์์ฑ
mkdir docker-mysql && cd docker-mysql
2. DB ๊ณ์ ์ ๋ณด ์์ฑ
.env
์์ฑ
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD={root_pw}
MYSQL_DATABASE={db๋ช
}
MYSQL_USER=user
MYSQL_PASSWORD={user_pw}
3. ๊ฐ ํด๋ ๋ฐ ํ์ผ ์์ฑ
mkdir -p mysql/conf.d
mkdir -p mysql/data
mkdir -p mysql/initdb.d
conf.d
์์๋ my.cnf
๋ฅผ ์๋์ ๊ฐ์ด ์์ฑํฉ๋๋ค.
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init.d
์์๋ create.sql
๊ณผ load_data.sql
๋ฅผ ์์ฑํฉ๋๋ค.
- create.sql (์์)
CREATE TABLE user( username VARCHAR(25) PRIMARY KEY, password VARCHAR (50) not null );
- load_data.sql (์์)
INSERT INTO user(username, password) VALUES ('user', 'pass');
4. docker-compose.yml
version: "3"
services:
db:
container_name: docker-mysql
image: mysql
ports:
- 3306:3306
volumes:
- ./mysql/conf.d:/etc/mysql/conf.d
- ./mysql/data:/var/lib/mysql
- ./mysql/initdb.d:/docker-entrypoint-initdb.d
env_file: .env
environment:
TZ: Asia/Seoul
restart: always
# ์ ํํ ์์ฑ๋ฒ์ ์๋ ๋งํฌ ์ฐธ์กฐ
# https://docs.docker.com/compose/compose-file/
image
: mysql latest ๋ฒ์ ์ฌ์ฉ (ํน์ ๋ฒ์ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด → mysql:0.0.1 ์ด๋ฐ์์ผ๋ก ์์ฑ)ports
: ์ปจํ ์ด๋ ํฌํธ 3306 ๊ฐ๋ฐฉvolumes
: Docker ์ปจํ ์ด๋์ ํ์ผ์ ์ฌ์ฉ์ ์์คํ ์ ํ์ผ์ ์ฐ๊ฒฐTZ
: DB Time Zone ์ค์
docker-compose๋ก ์คํ!
์คํ
$ docker-compose -f docker-compose.yml up -d
-f
: ๋ณ๋์ docker-compose ํ์ผ์ ์ฌ์ฉํ๊ณ ์ถ์ ๋-d
: ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํ
์ข ๋ฃ
$ docker-compose down
REFERENCE
๋ฐ์ํ