在 Systemd 上使用 TLS 启用远程访问

将软件包安装程序单元文件复制到/ etc,以便在升级时不会覆盖更改:

cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service

使用 ExecStart 上的选项更新/etc/systemd/system/docker.service:

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 \
  --tlsverify --tlscacert=/etc/docker/certs/ca.pem \
  --tlskey=/etc/docker/certs/key.pem \
  --tlscert=/etc/docker/certs/cert.pem

请注意,dockerd 是 1.12 守护进程名称,之前是 docker daemon。另请注意,2376 是 dockers 标准 TLS 端口,2375 是标准的未加密端口。有关创建自己的 TLS 自签名 CA,证书和密钥的步骤,请参阅此页面

更改 systemd 单元文件后,运行以下命令重新加载 systemd 配置:

systemctl daemon-reload

然后运行以下命令重新启动 docker:

systemctl restart docker

暴露 Docker 端口时跳过 TLS 加密是一个坏主意,因为对此端口具有网络访问权限的任何人都有效地在主机上具有完全 root 访问权限。