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 Daemon 攻击面。
注意
要在没有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此错误表明由于之前使用了
sudo命令,~/.docker/目录的权限设置不正确。要解决这个问题,要么删除
~/.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日志驱动程序以启用 日志轮换。 - 使用一个 替代的日志驱动 例如 "local" 日志驱动 它默认执行日志轮换。
- 使用将日志发送到远程日志聚合器的日志驱动程序。
下一步
- 查看 Docker 工作坊 学习如何构建镜像并将其作为容器化应用程序运行。