我意識到這是一箇舊的和解決的線程,OP指向容器中的目錄而不是他們已經安裝的目錄,但是想要清除一些我所看到的錯誤信息。
docker-compose down
不會刪除卷,如果您還想刪除卷,則需要運行docker-compose down -v
。這裏的幫助文本直接從泊塢窗 - 撰寫(注意是「默認」列表):
$ docker-compose down --help
Stops containers and removes containers, networks, volumes, and images
created by `up`.
By default, the only things removed are:
- Containers for services defined in the Compose file
- Networks defined in the `networks` section of the Compose file
- The default network, if one is used
Networks and volumes defined as `external` are never removed.
Usage: down [options]
Options:
...
-v, --volumes Remove named volumes declared in the `volumes` section
of the Compose file and anonymous volumes
attached to containers.
...
$ docker-compose --version
docker-compose version 1.12.0, build b31ff33
這裏與一個名爲量測試和虛擬指令的樣本陽明:
$ cat docker-compose.vol-named.yml
version: '2'
volumes:
data:
services:
test:
image: busybox
command: tail -f /dev/null
volumes:
- data:/data
$ docker-compose -f docker-compose.vol-named.yml up -d
Creating volume "test_data" with default driver
Creating test_test_1
啓動後容器中,由於圖像在該位置是空的,因此將卷初始化爲空。我在那個位置創建一個快速的Hello World:
$ docker exec -it test_test_1 /bin/sh
/# ls -al /data
total 8
drwxr-xr-x 2 root root 4096 May 23 01:24 .
drwxr-xr-x 1 root root 4096 May 23 01:24 ..
/# echo "hello volume" >/data/hello.txt
/# ls -al /data
total 12
drwxr-xr-x 2 root root 4096 May 23 01:24 .
drwxr-xr-x 1 root root 4096 May 23 01:24 ..
-rw-r--r-- 1 root root 13 May 23 01:24 hello.txt
/# cat /data/hello.txt
hello volume
/# exit
體積泊塢窗可見之外,目前還沒有一種docker-compose down
後:
$ docker volume ls | grep test_
local test_data
$ docker-compose -f docker-compose.vol-named.yml down
Stopping test_test_1 ... done
Removing test_test_1 ... done
Removing network test_default
$ docker volume ls | grep test_
local test_data
重塑容器使用舊卷與文件仍可見裏面:
$ docker-compose -f docker-compose.vol-named.yml up -d
Creating network "test_default" with the default driver
Creating test_test_1
$ docker exec -it test_test_1 /bin/sh
/# cat /data/hello.txt
hello volume
/# exit
和運行docker-compose down -v
終於將同時刪除容器體積:
$ docker-compose -f docker-compose.vol-named.yml down -v
Stopping test_test_1 ... done
Removing test_test_1 ... done
Removing network test_default
Removing volume test_data
$ docker volume ls | grep test_
$
如果您發現只有在使用stop/start而不是down/up的情況下才會保留數據,那麼您的數據將存儲在容器中而不是卷中,並且容器不會持續存在。確保容器內數據的位置正確,以避免這種情況。
我會嘗試沒有memsqldata容器。由於您正在使用命名卷,因此不需要數據卷容器。我嘗試了'down',並且默認情況下它不會刪除任何卷。 – dnephin
有可能mysql數據根本不在音量中?我不認爲它通常使用'/ data'。 – dnephin