b / w“service docker start”和“docker -d”有什么区别?

我是docker工人,想重新启动docker守护程序。 我想添加OPTS来启动docker,如:

docker --registry-mirror=http://<my-docker-mirror-host> -d 

我想知道他们有什么不同? 他们是否开始同样的事情?

顺便说一句,我只是使用上面的命令在我的boot2docker,它根本没有工作。

如果您使用service docker start那么它将启动docker作为docker的新贵configuration文件的服务,例如/etc/default/docker for ubuntu和/etc/sysconfig/docker for centos。

如果你使用docker -d ,它将以守护进程模式运行docker。

如果你想为docker定义你自己的registry-mirror ,你可以这样做:

Ubuntu的

 $ echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://<my-docker-mirror-host>\"" | sudo tee -a /etc/default/docker $ sudo service docker restart 

CentOS的

 sudo sed -i 's|other_args=|other_args=--registry-mirror=http://<my-docker-mirror-host> |g' /etc/sysconfig/docker sudo sed -i "s|OPTIONS='|OPTIONS='--registry-mirror=http://<my-docker-mirror-host> |g" /etc/sysconfig/docker sudo service docker restart 

苹果电脑

 boot2docker up boot2docker ssh "echo $'EXTRA_ARGS=\"--registry-mirror=http://<my-docker-mirror-host>\"' | sudo tee -a /var/lib/boot2docker/profile && sudo /etc/init.d/docker restart” 

然后你的docker服务与你自己的registry镜像一起运行。

要回答你的问题(这对debian / ubuntu是有效的,我没有tinyinux方便testingboot2docker使用哪个):

  • service docker start会在/etc/init.d/docker中运行一个启动脚本
  • docker -d是以前脚本的手动版本,当你想在debugging模式下运行docker的时候很有用。 我怀疑你给的例子不会做同样的事情,因为在服务脚本中指定了更多的选项。
  • 如果你想添加更多的docker命令选项,编辑/etc/default/docker文件

在OP的评论之后更新:

要添加新的开关,您需要专门编辑variables(可能导出) DOCKER_OPTS ,并将您的选项添加到现有选项的末尾。

我的/ etc / default / docker选项是:

 export DOCKER_OPTS="--tlsverify --tlscacert=/etc/docker/ca.pem --tlskey=/etc/docker/server-key.pem --tlscert=/etc/docker/server.pem --label=provider=XXXX --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2376" 

要添加registry镜像,我会编辑DOCKER_OPTS,看起来像这样

 export DOCKER_OPTS="--tlsverify --tlscacert=/etc/docker/ca.pem --tlskey=/etc/docker/server-key.pem --tlscert=/etc/docker/server.pem --label=provider=XXXX --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2376 --registry- mirror=192.168.59.103:5555"