据我所知,docker映像在被拉取时被安装到/var/lib/docker
。有没有办法更改此位置,例如更改到像/mnt
这样的已安装卷?
对于新的docker版本,我们需要使用数据根
,因为图形
在v17中已被弃用。05.0:官方不推荐的文档
编辑/etc/docker/daemon.json
(如果它不存在,则创建它)并包括:
{
"data-root": "/new/path/to/docker-data"
}
然后用以下命令重新启动Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
根据评论的建议,我使用Docker systemd留档来改进这个答案。下面的过程不需要重新启动,而且更干净。
首先为自定义配置创建目录和文件:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo $EDITOR /etc/systemd/system/docker.service.d/docker-storage.conf
对于17.06-ce之前的docker版本,粘贴:
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --graph="/mnt"
对于17.06-ce粘贴后的docker:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --data-root="/mnt"
我最近在Fedora 25上试用了17.09-ce的上述程序,但似乎不起作用。而不是在/etc/docker/daemon中进行简单的修改。json
做这个把戏:
{
"graph": "/mnt",
"storage-driver": "overlay"
}
尽管您必须重新加载配置并重新启动Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
要确认Docker已重新配置:
docker info|grep "loop file"
在最新版本(17.03)中,需要不同的命令:
docker info|grep "Docker Root Dir"
输出应如下所示:
Data loop file: /mnt/devicemapper/devicemapper/data
Metadata loop file: /mnt/devicemapper/devicemapper/metadata
或者:
Docker Root Dir: /mnt
然后您可以安全地删除旧的Docker存储:
rm -rf /var/lib/docker
对于Docker的最新版本,您可以在/etc/Docker/daemon中将
(根据https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-配置文件)。数据根
参数的值设置为自定义路径。json
对于旧版本,在启动Docker守护程序时,可以使用-g
选项更改Docker的存储基目录(容器和图像所在的位置)。(检查docker--help
)。当Docker启动时,您可以通过将其添加到/etc/default/Docker来自动应用此设置
问题内容: 据我所知,泊坞窗映像在安装时即已安装。有没有办法更改此位置,例如更改为已安装的卷? 问题答案: 对于最新版本的Docker,您可以在中 (根据https://docs.docker.com/engine/reference/commandline/dockerd/#daemon- configuration- file )将参数的值设置为自定义路径。 对于较旧的版本,您可以在启动Doc
问题内容: 我想创建一个docker镜像并正确安装,因此我选择具有这些属性的基础镜像。因此,的第一行如下: 然后下一个命令是 在创建docker映像时创建了以下错误: 如何能够在此docker映像中安装? 问题答案: 如提示: 获取(13:权限被拒绝) 我相信这是由于您的基本形象: https://github.com/SeleniumHQ/docker- selenium/blob/master
问题内容: 我正在通过创建带有一些nodejs指令的来玩docker。现在,每次更改dockerfile时,我都会通过在项目文件夹中运行来重新创建映像,但这每次都会创建一个新映像,并很快吞没我的ssd。 更改dockerfile时,是否有一种方法可以更新现有映像,或者每次更改文件时都被迫创建一个新映像? 抱歉,这是一个愚蠢的问题 问题答案: 只要没有指令,Docker构建支持缓存。如果您正在积极地
这是我第一次尝试创建Docker形象,我希望有人能帮助我。我的Dockerfile大致如下所示: 基本上,我只是为了扩展jar文件而安装Java。运行makefile时,出现以下错误: /bin/sh:1:/usr/lib/jvm/java-7-openjdk-amd64:权限被拒绝 我一直试图效仿这个例子:https://registry.hub.docker.com/u/barnybug/op
我希望能够在SQL服务器Docker实例中运行一些交互式命令。因为我不熟悉bash,而且我有一些PowerShell知识,所以我会使用PowerShell Core。 如何在SQL Server docker映像上安装PowerShell Core?
我是Docker的新手。我创建了以下Dockerfile并运行它: 来自Centos:最新的ENV container docker运行YUM-Y更新&&yum clean all 我收到以下错误/输出: root@ggnlabvm-juper6:~/docker_test#docker build-t test。 将构建上下文发送到Docker守护进程2.048 kB 步骤1/3:来自Cento