在 Arch Linux 上安装 Docker 很简单。它可以在 Extra 仓库中找到,你可以简单地 执行 pacman 魔法:
sudo pacman -S dockersudo pacman -S dockersudo pacman -S docker
但要在 Arch Linux 上正确运行 Docker,还需要执行更多步骤。
让 Arch Docker 做好准备
这一切都归结为以下步骤:
- 从 Arch 仓库安装 Docker
- 启动 Docker 守护进程并在每次启动时自动运行
- 将用户添加到
docker
组以运行docker
命令而无需sudo
让我们看看详细步骤。
步骤 1:安装 Docker 包
打开终端并使用以下命令:
sudo pacman -S dockersudo pacman -S dockersudo pacman -S docker
输入密码并在询问时按 Y
。
![如何在Arch Linux上安装Docker 图片[1]-如何在Arch Linux上安装Docker-不念博客](https://www.bunian.cn/wp-content/uploads/2023/11/image-145.png)
这可能需要一些时间,具体取决于你使用的镜像。
💡 如果你看到找不到包或 404 错误,那么你的同步数据库可能是旧的。使用以下命令更新系统(它将下载大量软件包并需要时间):
sudo pacman -Syu
步骤 2:启动 docker 守护进程
Docker 已安装但未运行。你应该在第一次运行 Docker 命令之前启动 Docker 守护进程:
sudo systemctl start docker.servicesudo systemctl start docker.servicesudo systemctl start docker.service
我还建议启用 Docker 服务,以便 Docker 守护进程在系统启动时自动启动。
sudo systemctl enable docker.servicesudo systemctl enable docker.servicesudo systemctl enable docker.service
这样,你就可以开始运行 docker
命令了。你不再需要手动启动 Docker 服务。
![如何在Arch Linux上安装Docker 图片[2]-如何在Arch Linux上安装Docker-不念博客](https://www.bunian.cn/wp-content/uploads/2023/11/image-146.png)
步骤 3:将用户添加到 docker 组
Docker 已安装并且 Docker 服务正在运行。你几乎已准备好运行 docker
命令。
但是,默认情况下,你需要将 sudo
与docker
命令一起使用。这很烦人。
为了避免在每个 docker
命令中使用sudo
,你可以将自己(或任何其他用户)添加到docker
组,如下所示:
sudo usermod -aG docker $USERsudo usermod -aG docker $USERsudo usermod -aG docker $USER
你必须注销(或关闭终端)并重新登录才能使上述更改生效。如果你不想这样做,请使用以下命令:
newgrp dockernewgrp dockernewgrp docker
现在已经准备好了。我们来测试一下。
步骤 4:验证 docker 安装
Docker 本身提供了一个很小的 Docker 镜像来测试 Docker 安装。运行它并查看是否一切正常:
docker run hello-worlddocker run hello-worlddocker run hello-world
你应该看到类似这样的输出,表明 Docker 成功运行:
![如何在Arch Linux上安装Docker 图片[3]-如何在Arch Linux上安装Docker-不念博客](https://www.bunian.cn/wp-content/uploads/2023/11/image-144.png)
恭喜! 你已经在 Arch Linux 上成功安装了 Docker。
可选:安装 Docker Compose
Docker Compose 已经成为 Docker 不可或缺的一部分。它允许你管理多个容器应用。
较早的经典 Compose 由 docker-compose
Python 软件包提供。Docker 还将其移植到 Go 中,并通过docker compose
提供,但该软件包附带Docker Desktop。
在这个阶段,我建议使用经典的 docker-compose
插件并使用以下命令安装它:
sudo pacman -S docker-composesudo pacman -S docker-composesudo pacman -S docker-compose
![如何在Arch Linux上安装Docker 图片[4]-如何在Arch Linux上安装Docker-不念博客](https://www.bunian.cn/wp-content/uploads/2023/11/image-143.png)
故障排除技巧
以下是你可能遇到的一些常见问题以及可能的解决方案:
制表符补全不适用于 docker 子命令
如果你想对 docker
命令选项使用制表符补全(例如将im
补全到images
等),请安装bash-completion
包:
sudo pacman -S bash-completionsudo pacman -S bash-completionsudo pacman -S bash-completion
关闭终端并启动一个新终端。你现在应该能够通过 docker
命令使用制表符补全功能。
无法连接到 Docker 守护进程错误
如果你看到以下错误:
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.See 'docker run --help'.docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'.docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'.
那是因为 Docker 守护进程没有运行。参考步骤 2,启动 Docker 服务,确保其正在运行并启用它,以便 Docker 守护进程在每次启动时自动运行。
sudo systemctl start docker.servicesudo systemctl enable docker.servicesudo systemctl start docker.service sudo systemctl enable docker.servicesudo systemctl start docker.service sudo systemctl enable docker.service
尝试连接到 Docker 守护程序套接字时权限被拒绝
如果你看到此错误:
ddocker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.ddocker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.ddocker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.
这是因为你需要使用 sudo
运行docker
命令,或者将用户添加到docker
组以在不使用sudo
的情况下运行docker
命令。
我希望这篇简短的文章可以帮助你在 Arch Linux 上运行 Docker。