티스토리 뷰
728x90
docker-compose.yml
docker-compose.yml 파일을 생성 후 다음과 같이 작성해준다.
version: '3.8'
services:
mongodb:
image: mongo
container_name: my_mongo
restart: always
ports:
- 27017:27017
volumes:
- my_volume:/data/db
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=root
- MONGO_INITDB_DATABASE=my_schema
volumes:
my_volume:
이때 docker에 의해 관리되는 volume으로 생성하기 위해서는 services와 같은 level에서 volumes를 통해 매칭해줄 volume을 declaration을 해주어야 한다.
services: <--- top level
mongodb:
...
volumes:
- my_volume:/data/db
...
volumes: <--- top level
my_volume:
만약 volumes를 선언해주지 않을 경우 다음과 같은 에러 로그를 보게 된다.
ERROR: Named volume "mongodb:/data/db:db" is used in service "mongo" but no declaration was found in the volumes section
docker의 volume을 사용하지 않고 로컬 스토리지를 직접 매핑하고 싶다면 다음과 같이 작성하면 된다.
docker에서는 relative path 기능을 지원하기에 ./로 바로 접근이 가능하다.
services:
mongodb:
...
volumes:
- ./my_volume:/data/db
...
----삭제-----
volumes:
my_volume:
----삭제-----
다음의 커맨드를 실행해서 컨테이너를 띄워준다.
docker-compose up -d
컨테이너에 접속하고 실행 여부를 확인한다.
(중요) mongo command가 deprecated되어 더 이상 사용할 수 없다. mongosh 커맨드를 이용한다.
$ docker exec -it my_mongo /bin/sh
# mongosh -u root -p root
레퍼런스
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 도커
- RequestPart
- RequestParam
- lunarvim
- ModelAttribute
- 아키텍처
- 배포
- RequestBody
- 루나빔
- vim
- IDE
- Dap
- neovim
- JavaScript
- 레디스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함