基于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
2.安装Docker-compose
打开终端并执行以下命令,安装Docker
sudo pacman -Syu docker-compose
3.设置Docker守护进程,确保Docker开机运行
打开终端输入以下命令,启动Dcoker
sudo systemctl start docker
打开终端输入以下命令,设置守护进程
sudo systemctl enable docker
4. 将用户拉进Docker用户组,避免使用Docker遇到权限问题
输入以下命令将用户拉进Docker用户组
sudo usermod -aG docker $USER
可能会遇到的问题:
1.docker命令在终端下补全
在ArchLinux中默认终端程序不会对docker命令进行补全比如当输入至docker r
是按下TAB键会自动补全至docker run
,要实现这样的效果其实只需要下载bash-completion
包就可以实现。
- 在终端输入以下命令安装bash-completion包
sudo pacman -S bash-completion
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
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
结语
本教程不适用于所有人,仅提供给有需要的人参考,在这里感谢ArchLinux团队和Docker团队开发出这么优秀的作品。
本教程基于以下文档编写: