我有一个Jira的实例在Ubuntu服务器上运行,带有docker compose。
我最初通过将jira安装文件夹映射到一个名为jiravolume的docker卷来设置它。
volumes:
- jiravolume:/var/atlassian/application-data/jira
为了更容易地访问数据,我想把这个文件夹直接放在Ubuntu服务器上的一个文件夹里。
首先,在性能/安全性方面有什么不同吗?
如果没有,实现这一目标的步骤是什么?
假设我想要一个文件夹中的数据,路径(相对于docker compose文件(如下:./persist/jira/installfolder
我需要先在服务器上创建文件夹结构,然后将docker composed更改为:
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
的路径