Docker 撰写:将卷映射从 docker 卷更改为服务器上的文件夹
Docker compose: Change volume mapping from a docker volume to a folder on the server
我在 Ubuntu 服务器上有一个 Jira 运行 实例,带有 docker-compose。
我最初通过将 jira 安装文件夹映射到名为 jiravolume 的 docker 卷来设置它。
volumes:
- jiravolume:/var/atlassian/application-data/jira
为了更方便地访问数据,我想将此文件夹直接放在 Ubuntu 服务器上的一个文件夹中。
首先,performance/security有什么区别吗?
如果none,实现这个的步骤是什么?
假设我想要一个文件夹中的数据(相对于 docker-compose 文件),如下所示: ./persist/jira/installfolder
我需要在服务器上创建文件夹结构吗首先然后将 docker-compose 更改为:
volumes:
- ./persist/jira/installfolder:/var/atlassian/application-data/jira
数据现在是自动复制到新文件夹中,还是仍在旧卷中,所以现在 jira 指向一个空文件夹?
非常感谢
不,那行不通,docker 将为您创建一个漂亮的空新文件夹。
如果在 linux 上,您的卷应该存储在这里:/var/lib/docker/volumes
你可以:
- 创建
./persist/jira/installfolder
和
- 将文件复制过来。然后
- 您必须更改文件的权限。并且
- 进行您在
docker-compose.yaml
中建议的更改
- 重启docker-compose。 (
docker-compose down && docker-compose up
应该够了)
提醒您:
如果该路径 ./persist/jira/installfolder
在您的 docker context
中,您可能需要检查您的 Dockerfile
以查看任何 COPY
或 ADD
语句。例如,如果您在某个地方有一个 COPY . .
,那么如果您重建它,您 运行 就有将您的卷复制到您的映像中的风险。
在那种情况下:要么更改这些语句,要么将您的路径添加到 .dockerignore
我在 Ubuntu 服务器上有一个 Jira 运行 实例,带有 docker-compose。
我最初通过将 jira 安装文件夹映射到名为 jiravolume 的 docker 卷来设置它。
volumes:
- jiravolume:/var/atlassian/application-data/jira
为了更方便地访问数据,我想将此文件夹直接放在 Ubuntu 服务器上的一个文件夹中。
首先,performance/security有什么区别吗?
如果none,实现这个的步骤是什么?
假设我想要一个文件夹中的数据(相对于 docker-compose 文件),如下所示: ./persist/jira/installfolder
我需要在服务器上创建文件夹结构吗首先然后将 docker-compose 更改为:
volumes:
- ./persist/jira/installfolder:/var/atlassian/application-data/jira
数据现在是自动复制到新文件夹中,还是仍在旧卷中,所以现在 jira 指向一个空文件夹?
非常感谢
不,那行不通,docker 将为您创建一个漂亮的空新文件夹。
如果在 linux 上,您的卷应该存储在这里:/var/lib/docker/volumes
你可以:
- 创建
./persist/jira/installfolder
和 - 将文件复制过来。然后
- 您必须更改文件的权限。并且
- 进行您在
docker-compose.yaml
中建议的更改
- 重启docker-compose。 (
docker-compose down && docker-compose up
应该够了)
提醒您:
如果该路径 ./persist/jira/installfolder
在您的 docker context
中,您可能需要检查您的 Dockerfile
以查看任何 COPY
或 ADD
语句。例如,如果您在某个地方有一个 COPY . .
,那么如果您重建它,您 运行 就有将您的卷复制到您的映像中的风险。
在那种情况下:要么更改这些语句,要么将您的路径添加到 .dockerignore