Linux下Docker Engine安装后的一些配置步骤

一些安装后的配置令Linux主机可以更好地与Docker配合使用。

0x01 以非root用户身份管理Docker

Docker守护进程绑定到Unix套接字,而不是TCP端口。默认情况下,root用户拥有Unix套接字,而其他用户只能使用 sudo. Docker守护进程始终以root用户身份运行。

如果不想在docker命令前加上sudo,那么创建一个名为docker的Unix组,并在其中添加用户。当Docker守护进程启动时, 创建一个可由docker组的成员访问的Unix套接字。在某些Linux上 发行版上,系统会在使用包管理器安装 Docker Engine时自动创建此组,如果是那样的话,就没有必要手动创建组了。
警告
docker组向用户赋予root级别权限。有关这些如何影响系统安全性的详细信息,请参考 Docker守护进程安全资料。
注意

要在没有root权限的情况下运行Docker,请参考以非root用户身份运行Docker守护进程(Rootless模式)。

要创建docker组并添加你的用户,请执行以下操作:

  1. 创建docker组。
bash 复制代码
$ sudo groupadd docker
  1. 将您的用户添加到docker组。
bash 复制代码
$ sudo usermod -aG docker $USER
  1. 注销并重新登录,以便重赋予你的组成员身份。
    如果在虚拟机中运行Linux,则可能需要重新启动虚拟机以使更改生效。
    也可以运行以下命令来激活对组的更改:
bash 复制代码
$ newgrp docker
  1. 验证您是否可以在没有sudo的情况下运行docker命令。
powershell 复制代码
$ docker run hello-world

这个命令下载一个测试映像并在容器中运行它。当容器运行时,它会打印一条消息并退出。

如果在添加用户到docker组之前此用户使用sudo运行过Docker CLI命令,可能会看到以下错误:

bash 复制代码
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

此错误表示~/.docker/的权限设置目录不正确,因为之前使用了sudo命令。

要解决此问题,请删除~/.docker/目录(它会自动重新创建,但任何自定义设置都将丢失),或更改其所有权限, 使用以下命令设置权限:

bash 复制代码
 $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
 $ sudo chmod g+rwx "$HOME/.docker" -R

0x02 使用systemd将Docker配置为开机自启动

许多现代Linux发行版都使用 systemd来管理系统引导时启动哪些服务。在Debian和Ubuntu上,Docker服务默认在系统引导时启动。对于使用systemd的其他Linux发行版,要开机自动启动Docker和containerd, 运行以下命令:

bash 复制代码
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

要停止此操作,请改用disable。

bash 复制代码
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service

如果需要添加HTTP代理,为 Docker运行时文件进行其他自定义目录或分区,请参考自定义systemd Docker守护程序选项。

0x03 配置默认日志记录驱动程序

Docker提供日志记录驱动程序来收集和查看来自主机上运行的所有容器的日志数据。默认日志记录驱动程序json-file将日志以JSON格式数据写入主机文件系统。随着时间的推移,这些日志文件的大小会扩大, 磁盘资源可能耗尽。

若要避免日志数据过度使用磁盘的问题,考虑以下方法之一:

json-file日志记录驱动程序配置为打开日志轮换

使用替代日志记录驱动器例如 "本地"日志驱动程序并在默认情况下执行日志循环。

使用日志记录驱动程序将日志发送到远程日志记录服务器。

相关推荐
2023自学中12 小时前
imx6ull 开发板 推流ov5640数据,虚拟机用 ffplay 拉流播放
linux·音视频·嵌入式·开发板
shandianchengzi12 小时前
【记录】Ghidra|Ubuntu 26.04 下 Ghidra 界面缩放完整指南
linux·ubuntu·逆向·ghidra
Soari12 小时前
Ubuntu 根分区文件系统损坏,系统启动时自动检查失败
linux·运维·ubuntu
杨云龙UP12 小时前
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
linux·运维·数据库·sql·oracle·报告·巡检
广州灵眸科技有限公司12 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) Linux虚拟机准备
linux·运维·服务器
darkdragonking13 小时前
OpenEuler 22.03 ,以docker ce 安装 Milvus 及可视化工具
docker·容器·milvus
Peace14 小时前
【Prometheus】
linux·运维·prometheus
我叫张土豆14 小时前
V100 显卡部署 Qwen3-ASR-1.7B 语音识别模型(vLLM + Docker 完整教程)
docker·语音识别·vllm
LZZ and MYY16 小时前
RTS 在windows和Linux之间ShareMem
linux·运维·服务器
aningx16 小时前
openSUSE Leap 16.0 运行 sunshine 报错的解决方法
linux