이미지 출처 : https://aws.amazon.com/ko/docker/
Docker Container에 쓰여진 데이터는 기본적으로 컨테이너가 삭제될 때 함께 사라지기 때문에, 데이터를 계속 보관해야 할 경우에는 Docker Volume
을 사용해야 한다!!
그 외에 bind Mount를 사용해도 되지만, 나는 Docker Volume을 사용했으므로 이것만 정리..
(참고 : Docker Volume과 Bind Mount )
먼저, docker volume을 생성하기 위해 서버에서 명령어를 입력 해 주면 된다.
sudo docker volume create admin-data
나 같은 경우 Admin과 관련된 데이터를 저장 해 두어야 하기 때문에,
admin-data라는 이름으로 볼륨을 생성해줬다.
sudo docker volume ls (목록 확인)
sudo docker volume inspect admin-data (자세한 정보 확인)
다음은 볼륨을 조회 할 수 있는 명령어인데, ls
로 단순 목록 확인이 가능하며 inspect
로 자세한 정보를 확인 할 수 있다.
inspect 명령어 실행 시에는 다음과 같은 결과가 나왔다.
{
"CreatedAt": "2023-11-13T16:03:27+09:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/admin-data/_data",
"Name": "admin-data",
"Options": {},
"Scope": "local"
}
]
이제 컨테이너가 볼륨을 사용하기 위해서는 볼륨을 컨테이너에 마운트 해 줘야한다.
docker run
명령어 사용 시 -v 옵션을 사용 해 주면 되고,
콜론(:)을 구분자로 하여 앞에는 마운트 할 볼륨명, 뒤에는 컨테이너 경로를 명시하면 된다!
sudo docker run -v 볼륨명:컨테이너 경로 ~
나같은 경우
docker run -v admin-data:/app/uploads ~
이런식으로 경로를 지정 해 줬다. (내가 원하는 마운트 포인트는 /app/uploads 였다.)
sudo docker volume rm admin-data
위 명령어로 볼륨을 삭제하는 것이 가능한데, 이미 마운트 되어 있는 컨테이너가 있을 경우에는 볼륨이 제거되지 않는다고 한다.
이럴 경우 해당 볼륨이 마운트 된 모든 컨테이너 삭제 후 볼륨을 삭제해야 한다고 한다!!
sudo docker volume prune
마운트 되어 있지 않은 모든 볼륨을 한번에 제거 할 수 있는 명령어다.