사실 도커의 모든 CLI 명령어는 compose
로 바꿀 수 있다. 개인적으로 도커를 사용할 때는 항상 compose
를 사용할 것 같다. 그만큼 굉장히 편리한 기능이다. 왜냐하면 compose
는 여러개의 컨테이너를 하나로 묶어서 관리할 수 있는 서비스를 제공한다. 또한 복잡한 명령어를 단순화 시켜주는 강력한 기능을 제공한다.
아래는 mysql 이미지를 이용해서 컨테이너를 띄우는 명령어이다. 도커 허브의 공식 문서를 참조했다.
docker run -e MYSQL_ROOT_PASSWORD=password1234 -p 3306:3306 {host}:/var/lib/mysql -d mysql
Mysql
컨테이너를 띄우기가 매~우 귀찮아진다. 처음에는 괜찮을 지도 모르겠지만, 컨테이너를 내리고 올리기를 반복하면 저렇게 긴 명령어를 계속 치다보면.. 상당히 힘들다.그러니까 compose
기능을 사용하자. 위의 명령어와 동일한 기능을 하게끔 compose.yml
파일을 아래와 같이 작성해준다.
services:
my-db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: pwd1234
MYSQL_DATABASE: mydb # MySQL 최초 실행 시 mydb라는 데이터베이스를 생성해준다.
volumes:
- ./mysql_data:/var/lib/mysql
ports:
- 3306:3306
docker compose up -d
를 작성하면 끝이다. 이는 위의 긴 명령어와 완전히 동일한 기능을 한다.