环境

macOS Monterey 12.73

默认情况下,只有 root 或者 有 sudo 权限的用户可以执行 Docker 命令。

想要以非 root 用户执行 Docker 命令,你需要将你的用户添加到 Docker 用户组,该用户组在 Docker CE 软件包安装过程中被创建。想要这么做,输入:
sudo apt-mark hold docker-ce

Windows 子系统 WSL ubuntu24.04 无法使用 sudo systemctl restart docker

报下面的错

haima@WIN-20240929XKQ:/etc$ sudo systemctl start docker
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

可以尝试使用
sudo service docker restart

测试 docker 运行hello-world
docker run hello-world

启动 Docker 守护进程

如能正常使用 sudo systemctl ,则忽略,不用操作下面方法

方法 1:修改 ~/.bashrc 或 ~/.zshrc(推荐)

适用于不想启用 systemd 的情况,手动启动 Docker 守护进程。

步骤
编辑 Shell 配置文件(如 ~/.bashrc 或 ~/.zshrc):

vim ~/.bashrc
在文件末尾添加:
# Auto-start Docker if not running
if ! pgrep -f dockerd > /dev/null; then
    sudo /usr/bin/dockerd > /dev/null 2>&1 &
    echo "Docker started."
fi

使配置生效:

source ~/.bashrc

测试:

关闭 WSL 窗口,重新打开。

运行 docker ps,应该能正常使用。

方法 2:启用 systemd(适用于 WSL 2 + Windows 11)

如果希望 Docker 像普通 Linux 系统一样由 systemd 管理,可以启用 systemd。

步骤

编辑 /etc/wsl.conf:
sudo nano /etc/wsl.conf

添加以下内容:

ini
[boot]
systemd=true

关闭 WSL 并重启:

powershell
wsl --shutdown
重新进入 WSL,检查 systemd 是否运行:

ps -p 1 -o comm=  # 应该显示 "systemd"

启用 Docker 开机自启:

sudo systemctl enable docker

测试:

重启 WSL,运行 docker ps,应该能正常使用。

作者:海马  创建时间:2024-03-24 09:36
最后编辑:海马  更新时间:2025-08-02 13:27