如何使用 docker-compose 文件创建 docker 卷,以便应用程序可以在 运行 时写入文件?
How to create docker volume using docker-compose file so the app can write files to when running?
我有一个使用 ASP.NET Core 3.1 框架编写的应用程序。我正在尝试创建一个 docker 图像以允许我在 Linux 系统上 运行 该应用程序。
我的应用程序允许用户将文件上传到服务器,因此它会将上传的文件写入项目根文件夹中名为 "Storage" 的文件夹中。
我想在 Linux 机器上创建一个永久存储,这样它就不会在删除图像时被破坏。
我创建了以下 docker-compose.yml
文件,其中包含有关如何创建卷的说明
version: '3.4'
services:
myproject:
image: ${DOCKER_REGISTRY-}myproject
build:
context: .
dockerfile: MyProject/Dockerfile
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://localhost;http://localhost
- ASPNETCORE_HTTPS_PORT=44344
ports:
- 51736:80
- 44344:443
volumes:
- photos:/app/Storage
volumes:
photos:
据我了解,位于 myproject
服务下的 volumes
将名为 photos
的卷映射到 /app/Storage
。
但是,我不会使用什么命令在服务器上创建卷,所以它不会被删除。
如何正确创建卷并指向图像以使用它?
您不需要其他任何东西。你已经拥有了一切。 docker-compose 会自动为您创建 photos
卷并在容器重启后保留它。首次启动此堆栈后检查 docker volume ls
,您将看到列出的卷。
我有一个使用 ASP.NET Core 3.1 框架编写的应用程序。我正在尝试创建一个 docker 图像以允许我在 Linux 系统上 运行 该应用程序。
我的应用程序允许用户将文件上传到服务器,因此它会将上传的文件写入项目根文件夹中名为 "Storage" 的文件夹中。
我想在 Linux 机器上创建一个永久存储,这样它就不会在删除图像时被破坏。
我创建了以下 docker-compose.yml
文件,其中包含有关如何创建卷的说明
version: '3.4'
services:
myproject:
image: ${DOCKER_REGISTRY-}myproject
build:
context: .
dockerfile: MyProject/Dockerfile
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://localhost;http://localhost
- ASPNETCORE_HTTPS_PORT=44344
ports:
- 51736:80
- 44344:443
volumes:
- photos:/app/Storage
volumes:
photos:
据我了解,位于 myproject
服务下的 volumes
将名为 photos
的卷映射到 /app/Storage
。
但是,我不会使用什么命令在服务器上创建卷,所以它不会被删除。
如何正确创建卷并指向图像以使用它?
您不需要其他任何东西。你已经拥有了一切。 docker-compose 会自动为您创建 photos
卷并在容器重启后保留它。首次启动此堆栈后检查 docker volume ls
,您将看到列出的卷。