Docker Engine 的 Linux 安装后步骤
这些可选的安装后过程描述了如何配置 Linux 主机与 Docker 配合使用效果更好。
以非 root 用户身份管理 Docker
Docker 守护程序绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,它是root
用户,其他用户只能使用sudo
.Docker 守护程序始终作为root
用户。
如果您不想在docker
command 替换为sudo
、创建 Unix
组调用docker
并向其添加用户。当 Docker 守护程序启动时,它会
创建一个 Unix 套接字,该套接字可由docker
群。在某些 Linux 上
distributions,则系统会在安装
使用包管理器的 Docker Engine。在这种情况下,您无需
手动创建组。
警告
这
docker
group 向用户授予 root 级权限。为 有关这如何影响系统安全性的详细信息,请参阅 Docker 守护程序攻击面。
注意
要在没有 root 权限的情况下运行 Docker,请参阅以非 root 用户身份运行 Docker 守护程序(无根模式)。
要创建docker
group 并添加您的用户:
创建
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-file
logging 驱动程序来启用日志轮换。 - 使用备用日志记录驱动程序,例如默认情况下执行日志轮换的 “local” 日志记录驱动程序。
- 使用将日志发送到远程日志记录聚合器的日志记录驱动程序。
后续步骤
- 查看 Docker 研讨会,了解如何构建镜像并将其作为容器化应用程序运行。