docker 활용시 특정 프로그램을 컨테이너에 띄울 수 있다.
여기서 특정프로그램에 수정사항이 발생 시에 새로운 이미지를 만들어서 컨테이너에 실행시켜야 한다.
이 때 ,Docker는 기존 컨테이너에 변경된 부분을 수정하지 않고 ,새로운 컨테이너를 만들어서 통째로 갈아끼우는 방식으로 교체를 한다.
이 때 새로운 컨테이너를 만들어서 갈아끼울때 DB가 저장된 컨테이너에 들어 있는 정보가 사라져 버린다.
따라서 컨테이너 내부에 저장된 데이터가 삭제되면 안 되는 경우에는 볼륨이라는 개념을 활용해야 한다.
도커의 볼륨은 도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법이다.
도커의 볼륨(Volume)은 컨테이너에 저장공간을 사용하지 않고 호스트 자체의 공유공간을 이용해서 저장을 한다.
$ docker run -v [호스트의 디렉토리 절대경로]:[컨테이너의 디렉토리 절대경로] [이미지명]:[태그명]
호스트의 디렉토리 절대경로에 디렉토리(파일이) 위치할 경우 호스트의 디렉토리에 있는 정보가 컨테이너를 덮어 씌운다.
호스트의 디렉토리 절대경로에 디렉토일(파일)이 존재하지 않을 경우 호스트의 절대 경로 디렉토리에 디렉토리를 만들고
컨테이너의 디렉토리에 있는 파일들을 호스트의 디렉토리로 복사한다.
그러니까 파일이 있으면 안 된다.
docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker
mysql/mysql_data:/var/lib/mysql -d mysql
dockermysql /mysql_data 에서 mysql_data 가 호스트 컴퓨터에 있으면 안 된다는 뜻이다.
안에 파일이 아무것도 없어야 컨테이너에서 파일이 복사 될 수 있다.
'Docker' 카테고리의 다른 글
Docker Compose 자주 쓰는 명령어 (0) | 2025.04.30 |
---|---|
Docker ENTRYPOINT 란? (0) | 2025.04.26 |
컨테이너 조회 /중지 /삭제 (0) | 2025.04.26 |
Docker 컨테이너 생성/ 실행 (0) | 2025.04.26 |
Docker 기본 명령어 + 이미지 조회/생성 (0) | 2025.04.26 |