使用systemd控制和配置Docker(引擎) | Control and configure Docker with systemd (Engine)
使用 systemd 控制和配置 Docker
许多 Linux 发行版使用 systemd 来启动 Docker 守护进程(daemon)。本文档展示了一些如何定制 Docker 设置的例子。
启动 Docker 守护进程(daemon)
手动启动
一旦安装了 Docker,您将需要启动 Docker 守护进程。大多数 Linux 发行版都用systemctl
来启动服务。如果您没有systemctl
,请使用service
命令。
systemctl
:$ sudosystemctl
启动docker
service:
$ sudo service docker start
在系统启动时自动启动
如果您希望 Docker 在启动时启动,请参阅配置 Docker 以在启动时启动。
自定义 Docker 守护进程(daemon)选项
有很多方法可以为你的 Docker 守护进程(daemon)配置守护进程标志和环境变量。推荐的方法是使用平台无关daemon.json
文件,该文件默认位于Linux上/etc/docker/
。请参阅守护程序(Daemon)配置文件。
您可以使用daemon.json
配置几乎所有守护程序配置选项。以下示例配置了两个选项。您无法使用daemon.json
机制配置的一件事是 HTTP 代理。
运行时间目录和存储驱动程序
您可能希望通过将 Docker 映像,容器和卷移动到单独的分区来控制用于 Docker 映像,容器和卷的磁盘空间。
要完成此操作,请在daemon.json
文件中设置以下标志:
{
"graph": "/mnt/docker-data",
"storage-driver": "overlay"
}
http/HTTPS 代理
Docker 守护程序(daemon)使用HTTP_PROXY
,HTTPS_PROXY
以及NO_PROXY
环境变量在其启动环境来配置 HTTP 或 HTTPS 代理的行为。您无法配置
这些环境变量使用daemon.json
文件。
此示例覆盖默认docker.service
文件。
如果您位于 HTTP 或 HTTPS 代理服务器的后面,例如在公司设置中,则需要在 Docker systemd 服务文件中添加此配置。
1. 为 docker 服务创建一个 systemd 放置目录:
2. 创建一个名为/etc/systemd/system/docker.service.d/http-proxy.conf
的文件,添加HTTP_PROXY
环境变量:
Service Environment="HTTP_PROXY=http://proxy.example.com:80/"
或者,如果您位于 HTTPS 代理服务器的后面,请创建一个名为/etc/systemd/system/docker.service.d/https-proxy.conf
的文件以添加HTTPS_PROXY
环境变量:
Service Environment="HTTPS_PROXY=https://proxy.example.com:443/"
1. 如果您有内部Docker注册表,您需要联系而无需代理,则可以通过NO_PROXY
环境变量指定它们:
2. 冲洗更改:
$ sudo systemctl 守护进程重新加载
3. 重新启动Docker:$ sudo systemctl restart docker
4. 验证已加载配置:
$ systemctl show --property =环境docker Environment = HTTP_PROXY = http://proxy.example.com:80/
或者,如果您位于HTTPS代理服务器的后面:
$ systemctl show --property =Environment docker = HTTPS_PROXY = https://proxy.example.com:443/
手动创建 systemd 单元文件
在没有包的情况下安装二进制文件时,您可能需要将 Docker 与 systemd 集成。为此,将两个单元文件(service
和socket
)从 github 存储库安装到/etc/systemd/system
。