Docker用に 永続ボリューム を作成する必要があります。ボリュームにはextra-addons
という名前を付け、/mnt/
に配置する必要があります。
私はこのコマンドを実行します:
Sudo docker volume create /mnt/extra-addons
私はこのエラーメッセージを受け取りました:
Error response from daemon: create /mnt/extra-addons: "/mnt/extra-addons" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a Host directory, use absolute path
単にSudo docker volume create extra-addons
を実行すると、この問題は発生しませんが、Sudo docker inspect extra-addons
を使用して問題のボリュームを検査すると、不要な場所にあることがわかります。
[
{
"CreatedAt": "2018-04-21T14:40:25+03:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/extra-addons/_data",
"Name": "extra-addons",
"Options": {},
"Scope": "local"
}
]
私はむしろこのようなボリュームを見たいと思っています:/mnt/extra-addons
何か案が?
私は解決策を見つけました:
local-persist プラグインをインストールする必要がありました。
次のように、作成するボリュームをマウントポイントにマウントする必要がありました。
Sudo docker volume create -d local-persist -o mountpoint=/mnt/ --name=extra-addons
私が期待したものを得たかどうかを確認してください:
Sudo docker volume inspect extra-addons
結果:
[
{
"CreatedAt": "0001-01-01T00:00:00Z",
"Driver": "local-persist",
"Labels": {},
"Mountpoint": "/mnt/",
"Name": "extra-addons",
"Options": {
"mountpoint": "/mnt/"
},
"Scope": "local"
}
]
それが私が探していたものです。
Dockerにプラグインをインストールしたくない場合は、ボリュームのシンボリックリンクを作成することをお勧めします。
$ docker volume create <myVolume>
$ docker volume inspect <myVolume>
[
{
"CreatedAt": "0001-01-01T00:00:00Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/<myVolume>/_data",
"Name": "<myVolume>",
"Options": {},
"Scope": "local"
}
]
$ mkdir /mnt/<myVolume>
# if you already have data in your volume, you should copy it to `/mnt/<myVolume>` now
$ Sudo rm -rf /var/lib/docker/volumes/<myVolume>/_data
$ Sudo ln -s /mnt/<myVolume> /var/lib/docker/volumes/<myVolume>/_data
通常どおりボリュームを自由に使用してください(すべてのデータが/mnt
お望み通り)
local-persist
ドライバは、進むべき道です。しばらく更新されていません。 docker mountを使用して、ローカル(ホスト)ディレクトリをdockerコンテナーにマウントできます。
以下を実行すると、マウントされたディレクトリがデスクトップにマッピングされた新しいコンテナが作成されます。
mkdir extra-addons
docker run -it -v /Users/me/Desktop/extra-addons:/mnt/extra-addons busybox /bin/sh
ls
コンテナのルートにmnt
フォルダが表示されます。
bin dev etc home mnt proc root sys tmp usr var
コンテナに新しいファイルを作成する
touch /mnt/extra-addons/test.txt
ホストマシンにtest.txtファイルを作成します。指定されたパス。これは現在、双方向の読み取り/書き込み共有フォルダーです。複数のコンテナが同じフォルダをマウントできます。また、コンテナをシャットダウンすると保持されます。