mysql을 실행하기 위한 docker-compose.yml
version: '3'
services:
db:
image: mysql:latest
container_name: mysql-server
ports:
- '3307:3307'
environment:
MYSQL_ROOT_PASSWORD: password
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- ./data/:/var/lib/mysql
mysql은 보통 3306포트를 사용합니다.
기록할때 당시 로컬에 mysql 3306을 사용 중이라서 3307로 띄웠고, 이름도 겹치지 않게 'mysql-server' 로 사용하였습니다.
mysql docker-compose로 보는 도커 문법
version : '3'
docker-compose.yml파일의 명세 버전입니다. 버전에 따라 지원하는 도커 엔진 버전도 다릅니다.
version: '3'
services:
db:
...
services는 실행할 컨테이너를 정의하는 부분입니다.
version: '3'
services:
db:
image: mysql:latest
container_name: mysql-server
다음으로 image와 컨테이너 이름을 정의합니다.
image뒤의 TAG(:latest)를 생략하면 latest가 붙습니다.
또한 이미지가 없으면 pull하고 실행 됩니다.
version: '3'
services:
db:
image: mysql:latest
container_name: mysql-server
ports:
- '3307:3307'
다음으로 컨테이너와 연결할 포트(들)을 설정합니다.
{호스트 포트}:{컨테이너 포트} 이렇게 넣어주면 됩니다.
해당 코드에서는 3307:3307으로 mysql을 연결했습니다.
version: '3'
services:
db:
image: mysql:latest
container_name: mysql-server
ports:
- '3307:3307'
environment:
MYSQL_ROOT_PASSWORD: password
environment를 사용하여 컨테이너에서 사용할 환경변수를 세팅할 수 있습니다.
{환경변수 이름}:{값} 이렇게 넣어주면 됩니다.
해당 환경변수는 MySQL 데이터베이스 인스턴스의 루트 암호를 설정하는 데 사용됩니다.
version: '3'
services:
db:
image: mysql:latest
container_name: mysql-server
ports:
- '3307:3307'
environment:
MYSQL_ROOT_PASSWORD: password
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
command는 컨테이너가 시작될 때 실행되는 명령어 입니다.
'--character-set-server=utf8mb4' : 서버에 대한 문자 집합을 설정하는 것으로 utf8mb4 문자 세트를 사용합니다.
'--collation-server=utf8mb4_unicode_ci' : mysql에서 데이터 정렬을 설정하는 명령어입니다.
해당 명령어는 텍스트 데이터가 언어나 문자 집합에 관계없이 일관되게 저장 및 비교하게 해줍니다.
version: '3'
services:
db:
image: mysql:latest
container_name: mysql-server
ports:
- '3307:3307'
environment:
MYSQL_ROOT_PASSWORD: password
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- ./data/:/var/lib/mysql
volumes는 마운트하려는 디렉터리(들)을 정해줍니다.
{호스트 디렉터리}:{컨테이너 디렉터리}
현재 디렉토리에서 'data'라는 폴더로 들어가서 컨테이너 디렉토리를 연결 해주는거라 생각하면 됩니다.
실행해보기
디렉토리 하나를 만들어서 해당 디렉토리에서 아래의 명령어를 입력하면 간단하게 mysql을 실행할 수 있습니다.
docker-compose up -d
-d 옵션으로 백그라운드에서 실행하기
접속 명령어
docker exec -it mysql-server mysql -p
'docker-server'라는 컨테이너에서 터미널을 열어서 mysql을 접속하는 명령어
비밀번호 'password'입력하면 db 접속 할 수 있습니다.
docker compose 명령어 정리
명령어 | 설명 |
docker-compose up | docker-compose.yml에 정의된 컨테이너 실행 |
docker-compose start | 멈춰 있는 컨테이너를 실행 |
docker-compose restart | 해당 컨테이너 재시작 |
docker-compose stop | 해당 컨테이너 멈춤 |
docker-compose down | 컨테이너를 종료하고 삭제 |
docker-compose logs | 컨테이너의 로그 |
docker-compose ps | 컨테이너 목록보기 |
docker-compse exec {컨테이너 이름}{명령어} | 실행 중인 컨테이너에서 명령어 실행 |
docker-compose build | 컨테이너에서 사용할 이미지를 빌드 |
'Docker' 카테고리의 다른 글
Docker run 명령어 정리 (0) | 2023.03.01 |
---|
댓글