基于ArchWSL安装配置Docker

注意:本教程基于Windows下ArchWsl的开发环境配置,此开发环境理论适用于原生Arch用户

Docker

Docker是一个基于Go语言开发的开源应用容器引擎,可以让打包好的开发环境直接运行在容器中,不会过多的消耗系统资源,并且开发环境可以打包分享给任何人,具有很高的可玩性,扩展性。采用虚拟化技术,沙箱机制相互之间不会产生任何接口,这就很符合我对开发环境的想法。

为什么基于WSL去配置Docker呢?

我是一名资深的ArchLinux用户,简称“Linux”中的邪教,由于去年末的时候更新了电脑配置,摆脱了由于性能而不得不使用Linux作为主力系统,当然,我之前的电脑完全能够支撑起Windows10的正常使用,但由于初二第一次接触电脑,对Windows也不是很了解,所以对系统的选择并不是很重要,在某位群友的安利下,加入了Arch邪教,并使用了5年的时间。后来因为电脑设备更换,再听说win11对linux子系统的支持也变好了,所以后面就将主力操作系统更换至Windows,且拥有ArchLinux子系统。

在迁移的过程中,我将开发环境迁移至Windows后发现,Mysql数据库、Redis等等开发环境的配置难如登天,没有Linux下一条命令能解决的,从而耗费了大量的时间,在了解Docker技术后,我在Widnows上进行配置,但是发现Windows下的Docker Desktop经常抽风,由于对Linux的了解,我觉得图形界面并不是刚需,反而我需要的是一个随用随到简单的开发环境就有了这篇文章。

Docker的安装

将总体的安装步骤归结为以下几点:

  • 从ArchLinux安装Docker
  • 从AcrhLinux安装Docker-compose
  • 启动Docker守护进程并设置自动启动
  • 将用户添加进Docker用户组避免权限问题

那就让我们开始今天的安装之旅吧!

1.安装Docker

打开终端并执行以下命令,安装Docker

sudo pacman -S docker

image-20240420024105587

2.安装Docker-compose

打开终端并执行以下命令,安装Docker

sudo pacman -Syu docker-compose

image-20240420025029758

3.设置Docker守护进程,确保Docker开机运行

打开终端输入以下命令,启动Dcoker

sudo systemctl start docker

打开终端输入以下命令,设置守护进程

sudo systemctl enable docker

image-20240420025123715

4. 将用户拉进Docker用户组,避免使用Docker遇到权限问题

输入以下命令将用户拉进Docker用户组

sudo usermod -aG docker $USER

image-20240420025320341

可能会遇到的问题:

1.docker命令在终端下补全

在ArchLinux中默认终端程序不会对docker命令进行补全比如当输入至docker r是按下TAB键会自动补全至docker run,要实现这样的效果其实只需要下载bash-completion包就可以实现。

  • 在终端输入以下命令安装bash-completion包
sudo pacman -S bash-completion

image-20240420030116689

2.无法连接Docker守护进程

在运行docker命令时遇到以下报错:

docker: 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'.

那是因为 Docker 守护进程没有运行。参考步骤 以上步骤,启动 Docker 服务,确保其正在运行并启用它,以便 Docker 守护进程在每次启动时自动运行。

  • 启动docker命令
sudo systemctl start docker
  • 启动守护进程,开机自启
sudo systemctl enable docker

image-20240420025123715

3.运行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'.

这是因为你需要使用 sudo 运行 docker 命令,或者根据以上步骤将用户添加到 docker 组以在不使用 sudo 的情况下运行 docker 命令。

  • 将用户添加到 docker
sudo usermod -aG docker $USER

image-20240420025320341

结语

本教程不适用于所有人,仅提供给有需要的人参考,在这里感谢ArchLinux团队和Docker团队开发出这么优秀的作品。

本教程基于以下文档编写:

Docker - Arch Linux 中文维基 (archlinuxcn.org)


基于ArchWSL安装配置Docker
https://sort.uninull.cn/posts/5123cfa3/
作者
CieanYau
发布于
2024年4月18日
更新于
2024年5月14日
许可协议