如何使用docker镜像,而不安装默认卷?

时间:2017-01-18 03:39:35

标签: docker

我想使用Docker MySQL。

docker run mysql

但我不想在主机上保存数据。我希望在容器内保护所有信息。默认情况下,此映像会创建一个未命名的卷,并将其附加到容器中。

是否可以使用相同的容器(我不想从地面创建新的MySQL图像),但禁用该卷?

换句话说:默认情况下,docker hub中的许多Docker镜像都在使用卷。保存容器内所有数据的最简单方法是什么(因此push和commit将包含数据)?有一个命令可以停止容器,更改它的安装设置,然后重新开始?

  

我知道这不是最佳做法,我的问题是,如果可能的话。

2 个答案:

答案 0 :(得分:1)

编辑:下面的线程的注释中提到了is a tool,可以编辑docker图像元数据,从而允许您删除卷。

这是目前尚待解决的问题,正在等待有足够带宽进行编码的人。您可以在此处跟踪进度,此链接可直接转到相应的注释:

  

@veqryn since reopening this issue, nobody started working on a pull-request; the existing pull request did no longer apply cleanly on the code-base so a new one has to be opened; if anyone is interested in working on this, then things can get going again.

我也想要这个功能!在使用NTFS的Windows主机上挂载/ var / lib / mysql /会赋予卷root:root权限,这些权限不能被授予;我不想将mysql用户添加到根组。我想取消体积/ var / lib / mysql目录,并用具有mysql:mysql权限的符号链接替换它,指向/ host / ntfs / mnt,它是root:root ‍♀️

答案 1 :(得分:0)

this question所示,您可以轻松地创建,命名和关联容器卷,使其足够default unnamed one of mysql

version: '2'
services:
  db:
    image: mysql
    volumes:
      - dbdata:/var/lib/mysql
volumes:
  dbdata:
    driver: local

请参阅“Mount a shared-storage volume as a data volume”:您可以使用其他驱动程序,例如flocker,并从多主机便携式卷中受益。