Docker 是一种流行的容器化技术,它可以将应用程序及其依赖项打包到一个可移植的容器中,并在不同的环境中运行。在使用 Docker 部署应用程序时,卷是一个非常有用的概念。卷是 Docker 中的一种持续性存储机制,用于在容器和主机之间共享数据。数据库卷则是在容器中使用数据库时,将数据库数据存储在主机上的卷。
Docker 卷
Docker 卷是一种持久性存储机制,它允许在容器和主机之间共享数据。使用卷可以使容器中的数据在容器删除后仍然存在,并且可以在多个容器之间共享。卷可以在容器启动时或在运行时创建,并且可以通过 Dockerfile 或命令行参数指定。
创建卷
可以使用 docker volume create
命令创建一个新的卷。例如,创建名为 myvolume
的卷:
$ docker volume create myvolume
也可以在启动容器时创建卷。例如,创建名为 myvolume
的卷并将其挂载到容器的 /data
目录:
$ docker run -v myvolume:/data myimage
挂载卷
可以使用 -v
或 --mount
选项将卷挂载到容器中。例如,将名为 myvolume
的卷挂载到 /data
目录:
$ docker run -v myvolume:/data myimage
或者使用 --mount
选项:
$ docker run --mount source=myvolume,target=/data myimage
删除卷
可以使用 docker volume rm
命令删除不再使用的卷。例如,删除名为 myvolume
的卷:
$ docker volume rm myvolume
数据库卷
当在容器中运行数据库时,可以将数据库数据存储在主机上的卷中。这样,在容器删除后,数据仍然存在,并且可以在多个容器之间共享。
创建数据库卷
可以使用 docker volume create
命令创建一个新的数据库卷。例如,创建名为 mydb
的数据库卷:
$ docker volume create mydb
挂载数据库卷
可以使用 -v
或 --mount
选项将数据库卷挂载到容器中。例如,将名为 mydb
的数据库卷挂载到 /var/lib/mysql
目录:
$ docker run -v mydb:/var/lib/mysql mymysqlimage
或者使用 --mount
选项:
$ docker run --mount source=mydb,target=/var/lib/mysql mymysqlimage
备份和恢复数据库卷
可以使用 docker run
命令和 tar
命令备份和恢复数据库卷。例如,将名为 mydb
的数据库卷备份到 backup.tar
文件中:
$ docker run --rm -v mydb:/data -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
要恢复备份,可以使用以下命令:
$ docker run --rm -v mydb:/data -v $(pwd):/backup busybox tar xvf /backup/backup.tar -C /
结论
Docker 卷和数据库卷是在使用 Docker 时非常有用的概念。使用卷可以使容器中的数据在容器删除后仍然存在,并且可以在多个容器之间共享。数据库卷可以使数据库数据存储在主机上的卷中,以便在容器删除后数据仍然存在,并且可以在多个容器之间共享。备份和恢复数据库卷也是非常有用的操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/677a41675c5a933a3413142d