4.4. 외부 하드 드라이브에 데이터 패킷을 저장하는 방법
자율 주행 데이터가 매일 상당량 기록되기 때문에 외장 하드 드라이브에 데이터를 저장할 계획입니다. 이를 어떻게 구현할 수 있나요?
관리자: daohu527@gmail.com
버전: 1.0.0
날짜: 2024년 11월 2일
설명:
4.4.1. 답변
기본적으로 데이터는 컨테이너 내에 저장됩니다. 그러나 데이터의 영속성을 보장하고 손실을 방지하기 위해 외장 하드 드라이브를 호스트의 특정 디렉토리에 마운트한 후, 해당 디렉토리를 컨테이너에 마운트해야 합니다. 이렇게 하면 데이터는 하드 드라이브에 저장되며, 컨테이너가 중지되더라도 손실되지 않습니다.
4.4.2. Ubuntu에서 컨테이너에 하드 드라이브를 마운트하는 단계
외장 하드 드라이브 장치 식별
lsblk
외장 하드 드라이브의 장치 이름을 찾습니다(예: /dev/sdb1).
마운트 디렉토리 생성
하드 드라이브를 마운트할 디렉토리를 생성합니다(예: /apollo/data/bag).
cd apollo sudo mkdir -p data/bag
하드 드라이브 마운트
mount 명령어를 사용하여 하드 드라이브를 해당 디렉토리에 마운트합니다.
sudo mount /dev/sdb1 data/bag
[건너뛰기] 컨테이너 시작 및 디렉토리 마운트
컨테이너를 시작할 때 해당 마운트 디렉토리를 컨테이너 내부 경로(예: /data)에 바인딩합니다.
docker run -v /mnt/external_drive:/data your_container_image
> apollo 디렉토리가 이미 컨테이너에 마운트되어 있으므로 이 단계를 생략할 수 있습니다.
따라서 외장 하드 드라이브의 데이터는 컨테이너의 /data 디렉토리에서 접근할 수 있으며, 컨테이너가 다시 시작되거나 중지되어도 하드 드라이브에 저장됩니다.
4.4.3. 데이터 패킷 기록
데이터 패킷을 기록하고 저장 경로를 지정합니다.
cyber_recorder record -a -o=data/bag