docker的volume bind会清空容器的文件

最近想安装jira

原本想用volume bind把容器(docker)里面的、opt/jira/atlassian-jira-software-7.13.0-standalone/atlassian-jira/WEB-INF/atlassian-bundled-plugins映射服务器的/opt/jira/atlassian-jira/atlassian-bundled-plugins

docker run -it -v /opt/jira/atlassian-jira/atlassian-bundled-plugins/:/opt/jira/atlassian-jira-software-7.13.0-standalone/atlassian-jira/WEB-INF/atlassian-bundled-plugins eric/jira

但是docker使用 docker exec –it 进入容器

ls /opt/jira/atlassian-jira-software-7.13.0-standalone/atlassian-jira/WEB-INF/atlassian-bundled-plugins

显示是的,文件呢??

在网上google有1天时间,终于找了答案:

1LYNNPFTM9AK)7~B@GIK`1N

如果容器的文件夹不为空就会把它清空。


如果我们需要bind容器的非空目录:

volumes:
  atlassian-jira:
    driver: local
    driver_opts:
      type: none
      device: /opt/jira
      o: bind

我这里是映射到jira整个安装目录。注意一定要先删除服务器上面的/opt/jira下面的文件。

不然容器里面的文件不会复制到服务器对应的/opt/jira文件夹

posted @ 2019-01-24 16:37  cay914  阅读(878)  评论(0编辑  收藏  举报