附录B Docker配置
在本书的很多地方我们都建议读者更改自己的Docker配置文件,在启动Docker宿主机时做一些永久性的改变。本附录会为读者达成这条最佳实践提供一些建议。在这种情境下,所使用的操作系统发行版就很重要了。
大多数主流发行版的配置文件的位置列在表B-1中。
表B-1 Docker配置文件位置
|
发 行 版 |
配 置 文 件 |
|---|---|
|
Ubuntu/Debian/Gentoo |
/etc/default/docker |
|
OpenSuse/CentOS/Red Hat |
/etc/sysconfg/docker |
注意,有一些发行版把配置作为单个文件,而另外一些发行版使用一个目录或者多个文件。例如,在Red Hat企业版证书中,有一个叫/etc/sysconfig/docker/docker-storage的文件,习惯上它包含与Docker守护进程的存储选项有关的配置。
如果读者所用的发行版没有和表B-1中的名字匹配的任何文件,那么值得检查一下/etc/docker文件夹,因为那里可能有相关的文件。
在这些文件中,管理着传递给Docker守护进程启动命令的相关参数。例如,编辑的时候,下面这样的命令允许为宿主机上的Docker守护进程设置启动参数:
DOCKER_OPTS=””
例如,如果想把Docker根目录从默认的位置(/var/lib/docker)改到别的地方,用户可能会把之前的那条改成:
DOCKER_OPTS=”-g /mnt/bigdisk/docker”
如果所用的发行版使用systemd配置文件(和/etc不同),那么还可以查找systemd文件夹下的docker文件中的ExecStart这一行,想要修改的话也可以修改。例如,这个文件可能位于/usr/lib/systemd/system/service/docker。下面是一个示例文件:
[Unit]Description=Docker Application Container EngineDocumentation=http://docs.docker.ioAfter=network.target[Service]Type=notifyEnvironmentFile=-/etc/sysconfig/dockerExecStart=/usr/bin/docker -d —selinux-enabledRestart=on-failureLimitNOFILE=1048576LimitNPROC=1048576[Install]WantedBy=multi-user.target
EnvironmentFile这一行把启动脚本指向了我们之前讨论过的有DOCKER_OPTS这项的文件。如果直接修改systemctl文件,需要运行systemctl daemon-reload命令,以便确保systemd守护进程采用了这个变化。
B.1 重启Docker
只修改Docker守护进程的配置是不够的,为了采用这些变化,必须重启守护进程。注意,这会停止所有正在运行的容器,取消所有进行中的镜像下载。
B.1.1 使用systemctl重启
大多数现代Linux发行版都使用systemd来管理机器上的服务的启动。如果在命令行运行systemctl,获取好几页输出,那么宿主机就是在运行systemd。如果得到一个“command not found”消息,那么试一下B.1.2节中的方法。
如果想要更改配置,可以按如下方式停止和启动Docker:
$ systemctl stop docker$ systemctl start docker
也可以简单地重启:
$ systemctl restart docker
通过下面这些命令来检查进度:
$ journalctl -u docker$ journalctl -u docker -f
这里的第一行会输出Docker守护进程的可用的日志,第二行输出任何新条目的日志。
B.1.2 重启服务
如果系统运行一个基于System V的init脚本,试一下运行service —status-all。如果返回一系列的服务,就可以使用service来重启新配置的Docker:
$ service docker stop$ service docker start
