Docker卷新手问题
Docker volumes newbie questions
对于服务,我将卷定义为(我的 yml 文件的摘录)
services:
wordpress:
volumes:
- wp_data:/var/www/html
networks:
- wpsite
networks:
wpsite:
volumes:
wp_data:
driver: local
我知道在 Windows 10 文件系统上我不会轻易看到 WP 卷,因为它们将存在于 linux VM 中。或者,我必须提供一个路径参数才能查看我的 WP 安装,例如
volumes:
- ./mysql:/var/lib/mysql
但我的问题是 'driver: local' 选项的意义是什么,这是默认值吗?我试过使用 & 不使用这个选项,但看不出有什么不同。
其次这是做什么的?在我的 yml 文件中,我已经将其注释掉,没有任何我能看到的不良影响!?
networks:
wpsite:
第一题:
--driver
或 -d
选项默认为本地。 driver: local
是多余的。在 Windows 上,本地驱动程序不支持任何选项。如果您在 Linux 机器上 运行ning docker,您会有一些选择:官方文档在这里 - https://docs.docker.com/engine/reference/commandline/volume_create/
第二题:
在每个部分 networks:
/volumes:
/services:
中,您基本上声明了部署所需的资源。
也就是说,创建一个虚拟机类比,你可以这样想:你需要创建一个名为wp_data
的虚拟磁盘和一个名为wpsite
.
的虚拟网络
然后,您需要 wordpress
服务,将 wp_data
磁盘安装在 /var/www/html
下并连接到 wpsite
子网。
您可以使用以下 docker 命令来显示您的组合文件在幕后创建的资源:
docker ps
- 显示容器
docker volume ls
- 显示 docker 卷
docker network ls
- 显示 docker 网络
提示:网络或卷一旦创建,除非手动删除,否则不会自动销毁。您可以手动清理资源并通过 removing/adding 撰写文件中的更多资源自己进行试验。
已更新以回答评论中的问题:
如果您 运行 您的 docker 在 Windows 主机上,您可能启用了 hyper-v。这允许 Windows 创建一个 Linux 虚拟机,您的 docker 引擎在其之上 运行ning。
安装 docker 引擎后,docker 可以创建“虚拟资源”,例如虚拟网络、虚拟磁盘(卷)、容器(人们经常将容器比作 VM)、服务、容器等。
让我们看看您撰写文件中的以下部分:
volumes:
wp_data:
driver: local
这将创建一个由 docker 管理的名为 wp_data
的虚拟磁盘。该卷不是直接在您的 Windows 主机文件系统上创建的,而是在 Linux 虚拟机中创建的,该虚拟机 运行 宁在 运行 的 HyperV 之上]ning 在您的 Windows 主机上。如果你想知道确切的位置,你可以执行 docker inspect <containerID>
并查找你在该容器上的挂载,或者 docker volume ls
然后 docker volume inspect <volumeID>
并查找键“Mountpoint”以获取实际位置。
对于服务,我将卷定义为(我的 yml 文件的摘录)
services:
wordpress:
volumes:
- wp_data:/var/www/html
networks:
- wpsite
networks:
wpsite:
volumes:
wp_data:
driver: local
我知道在 Windows 10 文件系统上我不会轻易看到 WP 卷,因为它们将存在于 linux VM 中。或者,我必须提供一个路径参数才能查看我的 WP 安装,例如
volumes:
- ./mysql:/var/lib/mysql
但我的问题是 'driver: local' 选项的意义是什么,这是默认值吗?我试过使用 & 不使用这个选项,但看不出有什么不同。
其次这是做什么的?在我的 yml 文件中,我已经将其注释掉,没有任何我能看到的不良影响!?
networks:
wpsite:
第一题:
--driver
或 -d
选项默认为本地。 driver: local
是多余的。在 Windows 上,本地驱动程序不支持任何选项。如果您在 Linux 机器上 运行ning docker,您会有一些选择:官方文档在这里 - https://docs.docker.com/engine/reference/commandline/volume_create/
第二题:
在每个部分 networks:
/volumes:
/services:
中,您基本上声明了部署所需的资源。
也就是说,创建一个虚拟机类比,你可以这样想:你需要创建一个名为wp_data
的虚拟磁盘和一个名为wpsite
.
的虚拟网络
然后,您需要 wordpress
服务,将 wp_data
磁盘安装在 /var/www/html
下并连接到 wpsite
子网。
您可以使用以下 docker 命令来显示您的组合文件在幕后创建的资源:
docker ps
- 显示容器
docker volume ls
- 显示 docker 卷
docker network ls
- 显示 docker 网络
提示:网络或卷一旦创建,除非手动删除,否则不会自动销毁。您可以手动清理资源并通过 removing/adding 撰写文件中的更多资源自己进行试验。
已更新以回答评论中的问题:
如果您 运行 您的 docker 在 Windows 主机上,您可能启用了 hyper-v。这允许 Windows 创建一个 Linux 虚拟机,您的 docker 引擎在其之上 运行ning。
安装 docker 引擎后,docker 可以创建“虚拟资源”,例如虚拟网络、虚拟磁盘(卷)、容器(人们经常将容器比作 VM)、服务、容器等。
让我们看看您撰写文件中的以下部分:
volumes:
wp_data:
driver: local
这将创建一个由 docker 管理的名为 wp_data
的虚拟磁盘。该卷不是直接在您的 Windows 主机文件系统上创建的,而是在 Linux 虚拟机中创建的,该虚拟机 运行 宁在 运行 的 HyperV 之上]ning 在您的 Windows 主机上。如果你想知道确切的位置,你可以执行 docker inspect <containerID>
并查找你在该容器上的挂载,或者 docker volume ls
然后 docker volume inspect <volumeID>
并查找键“Mountpoint”以获取实际位置。