Docker Engine 安装后的 Linux 步骤
这些可选的安装后步骤描述了如何配置您的Linux主机以更好地与Docker配合使用。
以非 root 用户管理 Docker
Docker 守护进程绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,Unix 套接字由 root 用户拥有,其他用户只能通过 sudo 访问它。Docker 守护进程始终以 root 用户身份运行。
如果您不想在 docker 命令前加 sudo,请创建一个名为 docker 的 Unix
组并将用户添加到其中。当 Docker 守护进程启动时,它会
创建一个 docker 组成员可访问的 Unix 套接字。在某些 Linux
发行版中,使用包管理器安装 Docker Engine 时,系统会自动创建此组。
在这种情况下,您无需
手动创建该组。
警告
docker组授予用户 root 级别权限。有关这如何影响系统安全性的详细信息,请参阅 Docker 守护进程攻击面。
注意
要在没有 root 权限的情况下运行 Docker,请参阅 以非 root 用户身份运行 Docker 守护进程(无根模式)。
要创建 docker 组并添加您的用户:
创建
docker组。$ sudo groupadd docker将您的用户添加到
docker组。$ sudo usermod -aG docker $USER注销并重新登录,以便重新评估您的组成员资格。
如果您在虚拟机中运行 Linux,则可能需要 重启虚拟机以使更改生效。
您也可以运行以下命令来激活对组的更改:
$ newgrp docker验证您是否可以在不使用
sudo的情况下运行docker命令。$ docker run hello-world此命令下载一个测试镜像并在容器中运行它。当容器运行时,它会打印一条消息并退出。
如果您在将用户添加到
docker组之前最初使用sudo运行了 Docker CLI 命令,您可能会看到以下错误: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 服务默认在启动时启动。要为其他使用 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日志驱动程序以启用 日志轮转。 - 使用 备用日志驱动程序 ,例如 "local" 日志驱动程序 ,该驱动程序默认执行日志轮换。
- 使用将日志发送到远程日志聚合器的日志驱动程序。
后续步骤
- 看一看 Docker 工作坊,了解如何构建镜像并将其作为容器化应用程序运行。