近期由于某些自动测试的需要,需要安装一个docker服务器环境。查看docker的官方站点,发现无论是windows还是macos或liunx,当前官方站点都推荐安装docker desktop。于是,便有了这篇文章。
debian安装
debian的安装并不是本文的重点,安装过程略。在进行UI选择时,本文选择是的KDE,原因是docker官方讲Gnome不支持一种图标,所以需要安装扩展。我想应该KDE支持的会更完美一些,所以坑应该会少一些吧。
添加sudo
默认的用户安装后,由于并不属于系统管理员,所以是无法安装任何软件的。此时,我们此需要将我们自己定义的非root用户添加到sudoer中。当然了,或许你可以直接使用 root
来操作,我想应该也是可以了。为了符合国际安全惯例,在此本文采用将普通用户添加到sudoer中的方式。
首先我们打开控制台:
然后输入 su -
命令,输入root密码:
su -
命令表示:切换到root用户的同时使用当前用户的环境,防止切到root后由于$path的设置问题导致一些命令无法找到的错误。比如:bash: usermod: command not found
接下来,我们把当前用户添加到sudo这个用户组中:
$ usermod -a -G sudo <username>
在一些文章中出现
<xxx>
,表示应该把<xxx>
中的内容替换为自己的实际值,比如本文要添加的用户名为panjie
,则需要将上述命令替换为usermod -a -G sudo panjie
接下来,我们注销当前用户,选择重新进行登录。
此时当前用户已经是sudo用户了。
设置代理(非必须)
设置apt代理请参考:https://www.serverlab.ca/tuto...
安装QEMU
接下来,我们按QEMU官网给出的方案来进行安装QEMU相关包:
$ sudo apt install qemu qemu-utils qemu-system-x86 qemu-system-gui
需要注意的是:如果你也是使用的DVD方案进行的方案,则可能碰到:Media change: please insert thid disc labeled 'Debin GNU/xxxx' xxx in the driver '/media/cdrom/' and press [Enter].
的提示。
解决方案有二:
- 重新将系统DVD盘进行挂载(这应该不是唯一的安装方式)后重新执行上述命令完成QEMU的安装,然后按本文取消CD源的操作操作继续操作。这也是本文在实际安装中使用的方式。
- 按本文的取消CD源的操作操作,重新执行上述命令完成QEMU的安装。该方式原则上应该是没有问题的,但未验证。
安装完成后,执行:qemu-img --help
,出现提示信息则说明安装成功(安装过程未报错,但提示找不到qemu-img找不到的话,可以尝试注销后再登录试试)。
版本号 5.2.0,符合官方的最低要求。
取消CD源
安装完QEMU后,其它的软件我们还是希望能够直接从网上安装了,此时则需要禁用下这个CD源。
在KDE中我们依次这么做:
其它要求
除了操作系统版本、CPU版本、虚拟化支持、QEMU、KDE桌面环境及不少于4G内存要求外,docker desktop还能ID映射(ID mapping)有一定的要求,幸运的是经过确认我们安装的debian11操作系统默认就满足这一要求,确认步骤如下:
$ echo $USER
username
$ cat /etc/subuid
username:100000:65536
$ cat /etc/subgid
username:100000:65536
注意:username是我们当前的用户名,比如本文中的panjie
。
安装docker desktop
终于可以正式开始安装了,为了避免踩坑,我们此时同样参考官方给出的安装教程。
安装 gnome-termial
由于本文使用提KDE UI ,所以需要安装gnome-terminal
:
$ sudo apt install gnome-terminal
如果你使用的是gnome UI,按官方的说法,则需要安装AppIndicator
和KStatusNotifierItem
两个Gnome扩展。
设置docker仓库
同样参考官方教程,设置 docker package repository。
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装Docker Engine
其实需要说明的是,如果我们跑docker的目的是为了进行相关测试,那么这个Docker Engine才是我们需要的。也就是说并不需要安装图形化的Docker Desktop。那么随着并不需要安装的有:UI(Gnome或KDE)以及QEMU。
由于本文的目的在于介绍如何安装Docker Desktop,而在安装Docker Desktop的过程中,又会自动安装Docker Engine,所以此部分在本文中并不需要。
下载最新的包
在debian中打开浏览器,访问:https://docs.docker.com/deskt...
点击下载到Downloads
文件夹中。
安装package
下载完成后,进入下载文件的文件夹,本文为Downloads,执行以下命令:
$ cd ~/Downloads
$ sudo apt-install update
$ sudo apt-get install ./docker-desktop-<version>-<arch>.deb
<version>-<arch>
根据你实际下载的文件名进行替换
此时将会自动执行一系列操作,静待完成。
按官方的说法,安装完成后会自动执行3个脚本:
其中一个是向/etc/hosts
添加一个k8s的DNS指向,所以我们也可以使用查看/etc/hosts
文件的方式来确认安装是否成功:
启动Docker Desktop
重新打开一个新的termial,然后执行systemctl --user enable docker-desktop
命令,则可以成功启动Docerk Desktop!
$ systemctl --user enable docker-desktop
与启动命令类型,停止Docker Desktop的命令为:
$ systemctl --user stop docker-desktop
然后很遗憾的翻车了,docker-desktop一直停在stoped状态。
然后本文使用systemctl --user status docker-desktop | more
来查看最终的报错原因:
google一通并没有发现有用的效果,于是:开始卸载当前4.11.0版本,安装一个指定的4.8.2版本。
如果你很幸运的没有翻车,那么可以继续阅读开机自启动了
开机自启动
卸载
首先我们停止docker:
$ systemctl --user stop docker-desktop
然后执行卸载命令:
$ sudo apt remove docker-desktop
下载4.8.2
同样使用debian中的浏览器,打开官网:https://docs.docker.com/desktop/
然后点击版本发行菜单:
再找到4.8.2,点击Debian进行文件下载。
然后继续执行一遍前面的安装过程:
然后还出现相关的错误。
放弃!
仅安装Docker Engine好了