배경
docker conainter에 쓰여진 데이터는 기본적으로 삭제됨
데이터를 유지하려면 기본적으로 2가지 방법이 있음
- volume
- bind mount
Volume 생성
➜ ~ docker volume create mongo-vol
mongo-vol
➜ ~ docker volume ls
DRIVER VOLUME NAME
local mongo-vol
Volume 상세정보
➜ ~ docker volume inspect mongo-vol
[
{
"CreatedAt": "2024-06-04T05:51:38Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/mongo-vol/_data",
"Name": "mongo-vol",
"Options": null,
"Scope": "local"
}
]
Volume 엮어서 컨테이너 실행
-v {volume_name}:{container_copy_path}
실습
mongo db 데이터 파일
docker run -v mongo-vol:/data/db --name docker-compose-study-mongodb-1
Volume 청소
마운트외어 있지 않는 모든 볼륨을 한번에 제거
docker volume prune
docker-compose 에서 Volume 사용하기
version: '3.1'
services:
my-app:
build: .
ports:
- 3000:3000
environment:
MONGO_DB_USERNAME: admin
MONGO_DB_PWD: supersecret
mongodb:
image: mongo
ports:
- 27017:27017
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: supersecret
volumes:
- mongo-data:/data/db
mongo-express:
image: mongo-express
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: supersecret
ME_CONFIG_MONGODB_SERVER: mongodb
depends_on:
- "mongodb"
volumes:
mongo-data:
driver: local
'IT' 카테고리의 다른 글
Toy Project 를 만들기 위한 유용한 사이트 모음 (2024년 6월 업데이트) (0) | 2024.06.19 |
---|---|
[docker] 동작원리 (0) | 2024.06.10 |
[docker] compose 기본 명령어 (0) | 2024.06.04 |
[docker] 이미지 받고 실행하기 / 빌드 후 실행하기 (1) | 2024.06.03 |
[linux] lsof command (0) | 2024.06.03 |