Docker daemon 配置和故障排除过程
启动daemon
启动daemon命令取决与你使用的操作系统:
RHEL, CentOS, Fedora, Ubuntu 16.04 或者更高版本,使用systemd管理docker服务启动。
$ sudo systemctl enable docker
关闭自动启动
$ sudo systemctl disable docker
手动启动daemon
$ dockerd
我们可以执行以下命令把当前用户加入到docker组,避免每次docker命令都要sudo。
$ sudo usermod -aG docker username
Docker daemon配置
加速器:
针对Docker客户端版本大于1.10的用户,您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5162s31v.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
daemon包含很多配置选项,在手工启动daemon的时候可以通过flags配置daemon启动参数,或者通过daemon.json配置文件更改配置。
完整的daemon.json的启动参数如下:
{
"api-cors-header": "",
"authorization-plugins": [],
"bip": "",
"bridge": "",
"cgroup-parent": "",
"cluster-store": "",
"cluster-store-opts": {},
"cluster-advertise": "",
"debug": true,
"default-gateway": "",
"default-gateway-v6": "",
"default-runtime": "runc",
"default-ulimits": {},
"disable-legacy-registry": false,
"dns": [],
"dns-opts": [],
"dns-search": [],
"exec-opts": [],
"exec-root": "",
"fixed-cidr": "",
"fixed-cidr-v6": "",
"graph": "",
"group": "",
"hosts": [],
"icc": false,
"insecure-registries": [],
"ip": "0.0.0.0",
"iptables": false,
"ipv6": false,
"ip-forward": false,
"ip-masq": false,
"labels": [],
"live-restore": true,
"log-driver": "",
"log-level": "",
"log-opts": {},
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5,
"mtu": 0,
"oom-score-adjust": -500,
"pidfile": "",
"raw-logs": false,
"registry-mirrors": [],
"runtimes": {
"runc": {
"path": "runc"
},
"custom": {
"path": "/usr/local/bin/my-runc-replacement",
"runtimeArgs": [
"--debug"
]
}
},
"selinux-enabled": false,
"storage-driver": "",
"storage-opts": [],
"swarm-default-advertise-addr": "",
"tls": true,
"tlscacert": "",
"tlscert": "",
"tlskey": "",
"tlsverify": true,
"userland-proxy": false,
"userns-remap": ""
}
更好的方法是把这些启动参数写道配置文件中:daemon.json
读取日志
docker日志的保存路径取决于操作系统的类型或者日志子系统,详见下表:
启动调试
两种方式打开调试模式
推荐方式是修改daemon.json文件,debug设置为true,这种方式适用于任何平台:
daemon.json一般保存在:/etc/docker/目录下,如果不存在你可以创建该文件,如该文件为空,增加下面的内容:
{
"debug": true
}
发送HUP信号给daemon,使其重新加载配置文件,linux系统命令如下:
$ sudo kill -SIGHUP $(pidof dockerd)
另一种方式是启动docker时,增加-D标签
强制日志输出
如该daemon长时间没反应或者反映较慢,可应通过命令发送信号强制日志追踪,具体命令如下:
linux:
$ sudo kill -SIGUSR1 $(pidof dockerd)
windows:
Download docker-signal.
Run the executable with the flag --pid=<PID of daemon>
这会强制追踪日志,而不会停止daemon的运行。
检查docker是否运行
- 使用:docker info 命令
- 使用系统命令:sudo systemctl is-active docker
- 使用系统命令:sudo status docker
- 使用系统命令:sudo service docker status
- 使用:ps 或者 top查看dockerd进程是否运行
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341