编程是一门艺术

raptor.zh(at)gmail.com Creative Commons License
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

archives 存档

01 Jan - 31 Dec 2018
01 Jan - 31 Dec 2017
01 Jan - 31 Dec 2016
01 Jan - 31 Dec 2015
01 Jan - 31 Dec 2014
01 Jan - 31 Dec 2013
01 Jan - 31 Dec 2012
01 Jan - 31 Dec 2011
01 Jan - 31 Dec 2010
01 Jan - 31 Dec 2009
01 Jan - 31 Dec 2008
01 Jan - 31 Dec 2007
01 Jan - 31 Dec 2006
01 Jan - 31 Dec 2005
01 Jan - 31 Dec 2004
01 Jan - 31 Dec 2003
01 Jan - 31 Dec 2002
01 Jan - 31 Dec 2001
01 Jan - 31 Dec 2000
01 Jan - 31 Dec 1999

--

links 链接

--

docker在systemd下的配置问题

问题说明

最近在debian8上装了个docker,但是因为存储空间的问题,需要把docker的存放路径改一下。按照官方文档的说法,只要修改/etc/default/docker里的DOCKER_OPTS,加上-g参数即可:

DOCKER_OPTS="-g /path/to/dockerdata"

但是这样改过以后重启docker,发现docker仍然在使用默认的/var/lib/docker,用ps看了一下,-g参数并没有被传递给dockerd。

去看了/etc/init.d/docker,也没看出什么不对来,只是觉得ps里看到的命令与这里不太一样。

百思不得其解。

放狗一搜才知道,原来是systemd搞的鬼。

systemd

这也不是新东西了,很多前卫的发行版早就已经用它把init替换掉了,然而我是不太喜欢,倒不是因为传说中它的太复杂或是二进制日志之类的,而是单纯因为懒,毕竟init比较熟简单也熟悉一些。

现在终于debian也用上了,只是我还没有注意到,直到这次碰到问题。

docker当然也不是不支持systemd,只是它的支持是有BUG的。那就是它的systemd配置文件里忘记去读取并使用/etc/default/docker里的自定义配置了……

所以,参照这个issue可以得到解决:

解决方案

在 /etc/systemd/system/multi-user.target.wants 目录(不同的发行版可能不一样,这个是debian8的)中找到 docker.service ,在其中找到:

ExecStart=/usr/bin/dockerd -H fd://

这句,修改为:

ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
EnvironmentFile=-/etc/default/docker

然后重启:

systemctl daemon-reload
service docker restart

现在 DOCKER_OPTS 就成功生效了。

推送到[go4pro.org]

Trackback link:

Please enable javascript to generate a trackback url

No trackbacks

评论(0)


 
   
 
  表情图标 

 


提示: 除了 <b> 和 <i> 之外,其他的Html标签都将从您的评论中去除.url或mail地址会被自动加上链接.