일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Springboot+Docker 초기설정
- Elasticsearch
- git
- Jenkins설치
- 도커예제
- Docker설치
- docker
- Jenkins port 변경
- mysql
- MongoDB
- 북노트
- Docker-compose
- 도커실행
- 알고리즘
- CleanCode
- Nginx
- 자바
- Jenkins
- elk
- Docker기본개념
- 프로그래머스
- 도커
- F.I.R.S.T
- 데이터볼륨
- springboot
- MongoDB설치 및 환경설정
- mysql index
- Expo #SpringBoot #네아로
- FIRST원칙
- MySQL 인덱스
- Today
- Total
MEMO
도커 데이터볼륨이란 ? (데이터 볼륨 컨테이너) 본문
데이터 볼륨
도커 컨테이너가 실행 중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트되지 않는 한 컨테이너가 파기될 때 호스에서 함께 삭제 된다. 컨테이너를 사용해서 애플리케이션을 운영하다 보면 새로운 버전의 컨테이너가 배포돼더라도 이전 버전의 컨테이너에서 사용하던 파일들을 그대로 사용할 수 있어야 한다. 이런 경우에 사용되는 것이 데이터 볼륨 이다.
데이터 볼륨 생성
데이터 볼륨을 생성하려면 docker container run 명령에 -v 옵션을 사용하면 된다.
docker container run [options] -v 호스트_디렉터리:컨테이너_디렉터리 리포지토리명[:태그] [명령] [명령인자]
데이터 볼륨 컨테이너
데이터 볼륨 컨테이너를 사용하는 경우는 데이터 저장을 컨테이너를 통해 하는것을 말한다. --volumes-from [컨테이너명] 옵션을 이용해 데이터를 저장할 컨테이너를 설정할 수 있다. 데이터를 저장할 데이터 볼륨 컨테이너에 -v 를 이용한 데이터 볼륨 설정이 되어 있다면, --volumes-from 을 지정해 생성한 컨테이너1 에서 데이터를 저장할 데이터 볼륨 컨테이너에 데이터를 저장하게되고, 데이터 볼륨 컨테이너는 로컬호스트에 저장하게 되면서 컨테이너와 로컬호스트 모두 저장되는것을 확인할 수 있다.
docker container run [options] --volumes-from 컨테이너명 이미지[:태그]
데이터 볼륨에 MySQL 데이터 저장
데이터 볼륨 컨테이너 역할을 할 이미지를 생성하기 위해 Dockerfile 을 작성후 빌드한다.
FROM busybox #경량운영체제
VOLUME /var/lib/mysql
CMD ["bin/true"]
생성된 이미지를 이용해 컨테이너를 실행하여 볼륨 컨테이너를 생성한다. mysql-volume 컨테이너의 경우 CMD 셸을 실행하고 바로 종료된다.
docker image build -t mysql-volume
docker container run -d --name mysql-volume mysql-volume:latest
이제 생성된 mysql-volume 을 데이터 볼륨 컨테이너로 가지는 mysql 컨테이너를 생성한다.
docker container run -d --rm --name mysql \
-e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \
--volumes-from mysql-volume \ # --volumes-from 을 이용해 mysql-volume 컨테이너와 연결
mysql:latest
이렇게 생성한 mysql 을 지우고 새로운 new-mysql 컨테이너를 생성해 --volumes-from 에 연결해 주면 이전에 저장된 데이터들이 그대로 연결되는것을 확인할 수 있다. 이렇게 데이터 볼륨 컨테이너를 생성해 퍼시스턴스 데이터를 관리할 수 있다.
'Docker' 카테고리의 다른 글
[docker] docker-compose 를 이용해 Kafka + zookeeper 설정하기 (0) | 2020.11.10 |
---|---|
[Docker] docker-compose 를 이용해 ELK 구축하기 ( + mySql, Nori) (0) | 2020.03.20 |
Springboot + nginx 를 Docker 를 이용해 배포하기 (2) | 2019.12.04 |
도커 설치 및 도커를 이용해 ubuntu 실행시켜 보기(도커 예제) (0) | 2019.11.13 |
도커란 무엇인가 :: 도커 이미지 와 도커 컨테이너 개념 (0) | 2019.11.13 |