在安装完docker
之后,docker daemon
会用默认的配置来运行。
在生产环境中,系统管理员通常会根据需求来配置docker
,在大多数例子中,系统管理员配置会配置进程管理器,如:sysvinit
,upstart
或systemd
来管理docker
的启动和停止。
直接运行docker daemon
我们可以直接用dockerd
命令来直接运行docker daemon
.默认是监听在unix socket unix:///var/run/docker.sock
1 | $ dockerd |
直接配置docker daemon
如果你是直接运行dockerd
命令,而非使用进程管理器(systemctl start docker
),你可以直接将配置选项附加到docker run
命令。其他配置选项可传递给docker daemon
来配置 配置选项如下:
| Flag | Description | | :—- | :——— | | -D,–debug=false |
开启或关闭debug模式,默认是关闭的 | | -H,–host=[] | Daemon socket[s]
连接到哪 | | –tls=false |
开启或关闭TLS,默认是关闭的 | 这里有一个使用配置选项运行docker daemon
的例子:
1 | $ dockerd -D \ |
这些选项是:
- 开启
debug
模式 -D - 开启
tls
并指定证书--tlscert
和--tlskey
- 监听连接
tcp://192.168.59.3:2376
命令行可参考complete list of daemon flags
Daemon debugging
如上所诉,开启debug模式来允许管理员或操作者来获取docker daemon运行时的信息。如果面对一个没有响应的daemon,管理员可以通过向Docker daemon发送SIGUSR1
信号来强制所有线程的完整堆栈跟踪添加到daemon的日志中。在linux上通常使用kill命令。例:kill -USR1 <daemon-pid>
发送SIGUSR1
到daemon,这会导致堆栈被添加到daemon日志中。
Note: 日志级别至少是info及以上,默认日志界别是info
在处理SIGUSR1
信号并将堆栈跟踪转存到日志后,daemon将继续运行,堆栈跟踪可用于确定daemon所有线程和goroutines的状态
在centos上配置docker
在CENTOS 6.X和RHEL 6.X中,我们在/etc/sysconfig/docker
文件中配置docker daemon,我们可以通过指定other_args
变量来实现。短时间内,在Centos7.x 和RHEL 7.x我们使用OPTIONS
变量值,不再推荐直接使用systemd。
1.登录到你的系统,使用root
账户,或者使用sudo
2.创建/etc/systemd/system/docker.service.d
目录
1 | $ sudo mkdir /etc/systemd/system/docker.service.d |
3.创建/etc/systemd/system/docker.service.d/docker.conf
文件1
$ sudo mkdir /etc/systemd/system/docker.service.d/docker.conf
4.打开这个docker.conf文件1
$ sudo vi /etc/systemd/system/docker.service.d/docker.conf
5.覆盖从docker.service
文件复制过来的ExecStart
,用以自定义docker daemon
。要修改ExecStart
配置,必须先指定一个空配置,然后再定义一个新配置,如下所示:
1 |
|
6.保存关闭文件
7.重新载入改变1
$ sudo systemctl daemon-reload
8.重启docker daemon1
$ sudo systemctl restart docker
9.检查docker daemon是否运行1
$ ps aux | grep docker | grep -v grep
logs
docker 在centos7.x上是将日志保存在/var/log/messages
中的,我们也可以使用journalctl -u docker
来查看docker的日志
1 | [root@xym ~]# journalctl -u docker |