今天你卷了吗?
内卷是近几年来中文网络上特别流行一个词,一般用于形容某个领域中发生了过度的,导致人们进入了互相倾轧、内耗的状态。
今天要学习的是docker中的卷,用来存储容器数据。与在容器的可写层中持久化数据相比,卷通常是更好的选择,因为卷不会增加使用它的容器的大小,并且卷的内容存在于给定容器的生命周期之外。

查看卷
docker volume ls
创建卷
$ docker volume create volumeName
检查卷
$ docker volume inspect volumeName
删除卷
#会删除未被容器或者服务副本使用的全部卷。谨慎使用!
docker volume prune
#删除未被使用的指定卷。
docker volume rm
创建了卷之后,会在操作系统中创建出目录,不同的操作系统对应的目录不一样。

使用–mount启动容器
docker run -d --name devtest --mount source=myvol2,target=/app nginx:latest
使用-v启动容器
docker run -d --name devtest -v myvol2:/app nginx:latest
使用带有 docker-compose 的卷
version: "3.9"
services:
frontend:
image: node:lts
volumes:
- myapp:/home/node/app
volumes:
myapp:
将在第一次调用docker-compose up卷时创建。
vim /var/lib/docker/containers/container-ID/config.v2.json
"MountPoints":{"/home":{"Source":"/path/to/your/host","Destination":"/home","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/path/to/your/host","Target":"/home"}}}
systemctl stop docker.service
如果报错需要停止docker.socket
sudo systemctl stop docker.socket
systemctl start docker.service
参考链接:
https://docs.docker.com/storage/volumes/
https://stackoverflow.com/questions/47489631/warning-stopping-docker-service-but-it-can-still-be-activated-by-docker-socke
https://stackoverflow.com/questions/43181654/locating-data-volumes-in-docker-desktop-windows
https://segmentfault.com/a/1190000040899948