web-dev-qa-db-ja.com

MacosのDockerボリュームコンテンツへのアクセス

Macでdocker volume inspect <dockerid>を実行すると、データへのパスが表示されますが、これは/var/lib/docker/volumes/<volume name>として表示されます。

Mac上では、Dockerが非常に小さいVMの内側に実行されるため、このリンクは存在しません。

screen ~/Library/Containers/com.docker.docker/Data/vms/0/ttyを使用してVMに入り、そのフォルダに移動してボリュームを表示できます。

だからそれをすべて得ましたが、私の質問は次のとおりです。私のホストマシンにこれらのボリュームにあるものをどのようにリンクするのですか?

私はこれを試しました:docker run -it --volume hello:/hello2 --name access_volumes busybox:latest /bin/shここでhelloは私が作成したボリュームの名前です。

ホストマシン上のフォルダをコンテナにリンクできますが、コンテンツをバックアップするか、ホストマシンからボリュームの内容を編集します。

それ、どうやったら出来るの?

7
jwknz

私はあなたが容器なしでそれをすることができるとは思わない。 https://docs.docker.com/storage/#backup-restore-or-migrate-data-volumes -------Data-Volumes] == ------さまよう - or-migrate-data-volumes] ==

docker run --rm --volume hello:/data -v $(pwd):/backup busybox tar cvf /backup/backup.tar /dbdata
 _

または変更するために:

docker run -d --name access_volume --volume hello:/data busybox
docker cp access_volume:/data local-data
# modify local-data
docker cp local-data access_volume:/data
 _
0
Marc

たとえば、ファイルdocker-compose.ymlを持つボリュームを作成します。

...

influxdb:
 image: influxdb:latest
 container_name: influxdb
 restart: always
 ports:
   - "8086:8086"
   - "9092:9092"
 volumes:
  - type: volume
    source: vol_influxdb
    target: /var/lib/influxdb
 _

...

Docker-VMにあるため、Macにこのボリューム "vol_influxdb"が見つかりません。 Mac端末を起動します。

screen /Users/<username>/Library/Containers/com.docker.docker/Data/vms/0/tty 
 _

今、あなたはDocker-VMにいて、あなたはあなたの音量を検索することができます:

cd /var/lib/docker/volumes/<VolumeName>/_data/
 _
2
Romanow

Docker-Compose:フォルダをコンテナにリンクすることができます。volumesあなたはこのようにリンクすることができます

volumes:
  - ./your_Host_folder:/folder_in_container/
 _
0
Cuong DaoVan