以非 root 用户身份管理 Docker
Docker 守护进程绑定到 Unix 套接字,而不是 TCP 端口。默认情况下, rootUnix 套接字的所有者是用户,其他用户只能使用 访问它 sudo。Docker 守护进程始终以root用户身份运行。
如果您不想在docker命令前添加sudo,请创建一个名为 的 Unix 组并向docker其中添加用户。Docker 守护进程启动时,会创建一个可供docker组成员访问的 Unix 套接字。在某些 Linux 发行版中,系统会在使用包管理器安装 Docker Engine 时自动创建此组。在这种情况下,您无需手动创建该组。
警告
该docker组向用户授予 root 级权限。有关此权限如何影响系统安全性的详细信息,请参阅 Docker Daemon 攻击面。

笔记
要以非 root 权限运行 Docker,请参阅 以非 root 用户身份运行 Docker 守护程序(无 root 模式)。
要创建docker组并添加用户:
1. 创建docker群组。
sudo groupadd docker2. 将您的用户添加到docker组中。
$ sudo usermod -aG docker $USER3. 注销并重新登录,以便重新评估您的群组成员资格。
如果您在虚拟机中运行 Linux,则可能需要重新启动虚拟机才能使更改生效。
您还可以运行以下命令来激活对组的更改:
newgrp docker4. 验证您是否可以docker在没有 的情况下运行命令sudo。
docker run hello-world此命令下载一个测试镜像并在容器中运行。容器运行时,它会打印一条消息并退出。
sudo如果您在将用户添加到组之前最初运行了 Docker CLI 命令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配置 Docker 以使用 systemd 在启动时启动

许多现代 Linux 发行版使用systemd来管理系统启动时启动的服务。在 Debian 和 Ubuntu 上,Docker 服务默认在系统启动时启动。对于使用 systemd 的其他 Linux 发行版,要使其在启动时自动启动 Docker 和 containerd,请运行以下命令:
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 提供了 日志驱动程序,用于收集和查看主机上运行的所有容器的日志数据。默认日志驱动程序json-file会将日志数据写入主机文件系统上的 JSON 格式文件。随着时间的推移,这些日志文件的大小会不断增大,从而可能导致磁盘资源耗尽。
为了避免因日志数据而过度使用磁盘的问题,请考虑以下选项之一:
• 配置json-file日志驱动程序以打开 日志轮换。
• 使用备用 日志驱动程序, 例如 默认执行日志轮换的“本地”日志驱动程序。
• 使用将日志发送到远程日志聚合器的日志驱动程序。