您的位置:首页 > 运维架构 > Docker

3.4.3、在不同系统上配置运行Docker

2015-10-10 21:41 686 查看


在不同系统上配置运行Docker

成功安装Docker之后,
docker
后台将会以默认的配置运行。

在一个生产环境里,系统管理员通常会根据公司(或组织)的具体要求来配置
docker
后台的启动和停止。在大多数境况下,系统管理员会安装一个进程管理器,例如,
SysVinit
Upstart
systemd
去管理
docker
后台的启动和关闭。


直接运行 Docker 后台

docker
后台可以使用
-d
参数直接运行。默认情况下,它会在
unix:///var/run/docker.sock
上监听:
$ docker daemon

INFO[0000] +job init_networkdriver()
INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
...
...


直接配置 Docker 后台

如果你通过运行
docker daemon
来替代进程管理器去直接运行
docker
后台,你可以在
docker
后面追加配置选项直接运行命令。其他的选项会被传递到
docker
后台去配置它。

一些后台的配置选项:
标志描述
-D
,
--debug=false
允许或禁止debug模式。默认是false。
-H
,
--host=[]
连接的后台 socket(s)
--tls=false
允许或禁止 TLS。默认false。
这里有一个使用配置选型运行
docker
后台的例子:
$ docker daemon -D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376


这些选型:

允许
-D
(debug)
模式。
设置
tls
的值为true,使用
--tlscert
--tlskey
分别指定服务证书和密匙。
监听连接在
tcp://192.168.59.3:2376
上。

完整的命令行介绍,请参考这里


Ubuntu(乌班图)

14.04
起,Ubuntu使用
Upstart
作为它的进程管理器。默认情况下,
Upstart
的工作路径在
/etc/init
docker
Upstart
job会在查找t
/etc/init/docker.conf


Ubuntu上成功安装完 Docker 之后,你可以使用
Upstart
去检查Docker的运行状态:
$ sudo status docker

docker start/running, process 989


运行 Docker

你可以使用如下命令去启动/停止/重启
docker
后台:
$ sudo start docker // 启动

$ sudo stop docker // 停止

$ sudo restart docker // 重启


配置 Docker

你可以通过修改
/etc/default/docker
文件中的
DOCKER_OPTS
变量来配置你的
docker
后台。

去配置 Docker 选项:

使用一个拥有
sudo
root
权限的用户登录到主机。

如果你的主机上没有
/etc/default/docker
文件,先创建它。这取决于你是如何安装Docker,可能你已经拥有这个文件了。

使用你喜欢的编辑器打开这个文件。
$ sudo vi /etc/default/docker


在文件最后面添加一个
DOCKER_OPTS
变量(或者修改)。这些选项会被追加到
docker

后台命令之后。

DOCKER_OPTS="-D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376"


这些选项:

允许
-D
(debug)
模式
设置
tls
的值为true,使用
--tlscert
--tlskey
分别指定服务证书和密匙。

监听连接在
tcp://192.168.59.3:2376
上。

完整的命令行介绍,请参考这里

保存并关闭文件。

重启
docker
后台。
$ sudo restart docker


验证
docker
后台运行的详情,可以使用
ps
命令。
$ ps aux | grep docker | grep -v grep



Logs(日志)

Upstart
默认日志路径是
/var/log/upstart
docker
后台的日志路在
/var/log/upstart/docker.log

$ tail -f /var/log/upstart/docker.log
INFO[0000] Loading containers: done.
INFO[0000] docker daemon: 1.6.0 4749651; execdriver: native-0.2; graphdriver: aufs
INFO[0000] +job acceptconnections()
INFO[0000] -job acceptconnections() = OK (0)
INFO[0000] Daemon has completed initialization


CentOS / Red Hat Enterprise Linux / Fedora

7.x
起,CentOS 和RHEL 使用
systemd
作为默认的进程管理器。而Fedora,自
21
版本也使用
systemd
作为它的进程管理器。

在CentOS/Red
Hat Enterprise Linux/Fedora上成功安装完 Docker 之后, 你可以使用如下方法检查Docker的运行状态:
$ sudo systemctl status docker


运行 Docker

你可以使用如下命令去启动/停止/重启
docker
后台:
$ sudo systemctl start docker

$ sudo systemctl stop docker

$ sudo systemctl restart docker


如果你需要Docker自动启动,你可以这样:
$ sudo systemctl enable docker


配置 Docker

你可以通修改
/etc/sysconfig/docker
文件中的
other_args
变量来配置
docker
后台。在 CentOS
7.x 和RHEL 7.x中,变量的名字是
OPTIONS
但是,在CentOS
6.x 和RHEL 6.x,叫
other_args
。在这样小节里,我们将使用CentOS
7.x 作为配置例子来演示
docker
后台的配置。

默认情况下,systemd服务会存放在
/etc/systemd/service
,
/lib/systemd/system
/usr/lib/systemd/system
里。根据你的系统你可以在上述的三个目录下找到
docker.service
文件。

配置Docker后台选项:

使用一个拥有
sudo
root
权限的用户登录到主机。

如果你的主机上没有
/etc/default/docker
文件,先创建它。这取决于你是如何安装Docker,可能你已经拥有这个文件了。

使用你喜欢的编辑器打开这个文件。

$ sudo vi /etc/sysconfig/docker


在文件最后面添加一个
DOCKER_OPTS
变量(或者修改)。这些选项会被追加到
docker

后台命令之后。

OPTIONS="-D --tls=true --tlscert=/var/docker/server.pem --tlskey=/var/docker/serverkey.pem -H tcp://192.168.59.3:2376"


这些选项:

允许
-D
(debug)
模式
设置
tls
的值为true,使用
--tlscert
--tlskey
分别指定服务证书和密匙。

监听连接在
tcp://192.168.59.3:2376
上。

完整的命令行介绍,请参考这里

保存并关闭文件。

重启
docker
后台。
$ sudo service docker restart


验证
docker
后台运行的详情,可以使用
ps
命令。
$ ps aux | grep docker | grep -v grep



Logs(日志)

systemd拥有属于自己日志系统,被称为“ journal”。
docker
后台的日志可以使用
journalctl
-u docker
指令去查看。
$ sudo journalctl -u docker
May 06 00:22:05 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
May 06 00:22:05 localhost.localdomain docker[2495]: time="2015-05-06T00:22:05Z" level="info" msg="+job serveapi(unix:///var/run/docker.sock)"
May 06 00:22:05 localhost.localdomain docker[2495]: time="2015-05-06T00:22:05Z" level="info" msg="Listening for HTTP on unix (/var/run/docker.sock)"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="+job init_networkdriver()"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="-job init_networkdriver() = OK (0)"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="Loading containers: start."
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="Loading containers: done."
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="docker daemon: 1.5.0-dev fc0329b/1.5.0; execdriver: native-0.2; graphdriver: devicemapper"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="+job acceptconnections()"
May 06 00:22:06 localhost.localdomain docker[2495]: time="2015-05-06T00:22:06Z" level="info" msg="-job acceptconnections() = OK (0)"


注意:使用和配置journal是一个高级话题,已经超出本章节覆盖的范围。

来源: <https://docs.docker.com/articles/configuring/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: