Docker Engine 的 Linux 安装后步骤
这些可选的安装后过程描述了如何配置 Linux 主机与 Docker 配合使用效果更好。
以非 root 用户身份管理 Docker
Docker 守护程序绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,它是root用户,其他用户只能使用sudo.Docker 守护程序始终作为root用户。
如果您不想在dockercommand 替换为sudo、创建 Unix
组调用docker并向其添加用户。当 Docker 守护程序启动时,它会
创建一个 Unix 套接字,该套接字可由docker群。在某些 Linux 上
distributions,则系统会在安装
使用包管理器的 Docker Engine。在这种情况下,您无需
手动创建组。
警告
这
dockergroup 向用户授予 root 级权限。为 有关这如何影响系统安全性的详细信息,请参阅 Docker 守护程序攻击面。
注意
要在没有 root 权限的情况下运行 Docker,请参阅以非 root 用户身份运行 Docker 守护程序(无根模式)。
要创建dockergroup 并添加您的用户:
创建
docker群。$ sudo groupadd docker将您的用户添加到
docker群。$ sudo usermod -aG docker $USER注销并重新登录,以便重新评估您的群组成员资格。
如果您在虚拟机中运行 Linux,则可能需要 重新启动虚拟机以使更改生效。
您还可以运行以下命令来激活对组的更改:
$ newgrp docker验证是否可以运行
docker命令sudo.$ docker run hello-world此命令将下载测试镜像并在容器中运行它。当 container 运行时,它会打印一条消息并退出。
如果您最初使用
sudo添加用户之前 到docker组,您可能会看到以下错误:WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied此错误表示
~/.docker/目录不正确,因为使用了sudo命令。要解决此问题,请删除
~/.docker/目录(已重新创建 自动,但任何自定义设置都会丢失),或更改其所有权和 权限:$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R $ sudo chmod g+rwx "$HOME/.docker" -R
使用 systemd 将 Docker 配置为在启动时启动
许多现代 Linux 发行版使用 systemd 来 管理在系统引导时启动的服务。在 Debian 和 Ubuntu 上, 默认情况下,Docker 服务在启动时启动。要自动启动 Docker 和 containerd 在引导其他使用 systemd 的 Linux 发行版时,运行 以下命令:
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
要停止此行为,请使用disable相反。
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service
您可以使用 systemd 单元文件在启动时配置 Docker 服务, 例如,要添加 HTTP 代理,请为 Docker 运行时文件或其他自定义项。有关示例,请参阅配置守护程序以使用代理。
配置默认日志记录驱动程序
Docker 为
从主机上运行的所有容器中收集和查看日志数据。这
default logging driver、json-file,将日志数据写入 JSON 格式的文件
主机文件系统。随着时间的推移,这些日志文件的大小会扩大,从而导致
磁盘资源可能耗尽。
为避免过度使用磁盘存储日志数据的问题,请考虑以下方法之一 选项:
- 配置
json-filelogging 驱动程序来启用日志轮换。 - 使用备用日志记录驱动程序,例如默认情况下执行日志轮换的 “local” 日志记录驱动程序。
- 使用将日志发送到远程日志记录聚合器的日志记录驱动程序。
后续步骤
- 查看 Docker 研讨会,了解如何构建镜像并将其作为容器化应用程序运行。