4. 外部ハードドライブにデータパケットを保存する方法

自動運転のデータパケットは毎日大量に記録されるため、外部ハードドライブを使用してデータを保存する予定です。どうやって実現できますか?

4.1. 回答

デフォルトでは、データはコンテナ内に保存されますが、データの永続性を実現し、データ損失を防ぐために、外部ハードドライブをホストの特定のディレクトリにマウントし、そのディレクトリをコンテナ内にマウントする必要があります。これにより、データはハードドライブ上に保存され、コンテナが停止しても失われません。

4.2. Ubuntuでコンテナにハードドライブをマウントする手順

  1. 外部ハードドライブのデバイスを識別

    lsblk
    

    外部ハードドライブのデバイス名を探します(例: /dev/sdb1)。

  2. マウントディレクトリの作成

    ハードドライブをマウントするためのディレクトリを作成します(例: /apollo/data/bag)。

    cd apollo
    sudo mkdir -p data/bag
    
  3. ハードドライブをマウント

    `mount`コマンドを使用してハードドライブをそのディレクトリにマウントします。

    sudo mount /dev/sdb1 data/bag
    
  4. 【スキップ】コンテナの起動とディレクトリのマウント

    コンテナを起動するときに、マウントディレクトリをコンテナ内のパス(例: /data)にバインドします。

    docker run -v /mnt/external_drive:/data your_container_image
    

    > `apollo`ディレクトリはすでにコンテナにマウントされているため、この手順をスキップできます。

これにより、外部ハードドライブのデータはコンテナ内の /data ディレクトリでアクセスでき、コンテナが再起動または停止してもハードドライブに保持されます。

4.3. データパケットの記録

データパケットを記録し、保存パスを指定します。

cyber_recorder record -a -o=data/bag