1

近期由于某些自动测试的需要,需要安装一个docker服务器环境。查看docker的官方站点,发现无论是windows还是macos或liunx,当前官方站点都推荐安装docker desktop。于是,便有了这篇文章。

debian安装

debian的安装并不是本文的重点,安装过程略。在进行UI选择时,本文选择是的KDE,原因是docker官方讲Gnome不支持一种图标,所以需要安装扩展。我想应该KDE支持的会更完美一些,所以坑应该会少一些吧。

image.png

添加sudo

默认的用户安装后,由于并不属于系统管理员,所以是无法安装任何软件的。此时,我们此需要将我们自己定义的非root用户添加到sudoer中。当然了,或许你可以直接使用 root 来操作,我想应该也是可以了。为了符合国际安全惯例,在此本文采用将普通用户添加到sudoer中的方式。

首先我们打开控制台:

image.png

然后输入 su - 命令,输入root密码:

image.png

su - 命令表示:切换到root用户的同时使用当前用户的环境,防止切到root后由于$path的设置问题导致一些命令无法找到的错误。比如:bash: usermod: command not found

接下来,我们把当前用户添加到sudo这个用户组中:

$ usermod -a -G sudo <username>
在一些文章中出现 <xxx>,表示应该把 <xxx> 中的内容替换为自己的实际值,比如本文要添加的用户名为 panjie,则需要将上述命令替换为 usermod -a -G sudo panjie

接下来,我们注销当前用户,选择重新进行登录。

此时当前用户已经是sudo用户了。

image.png

设置代理(非必须)

设置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].的提示。

解决方案有二:

  1. 重新将系统DVD盘进行挂载(这应该不是唯一的安装方式)后重新执行上述命令完成QEMU的安装,然后按本文取消CD源的操作操作继续操作。这也是本文在实际安装中使用的方式。
  2. 按本文的取消CD源的操作操作,重新执行上述命令完成QEMU的安装。该方式原则上应该是没有问题的,但未验证。

安装完成后,执行:qemu-img --help,出现提示信息则说明安装成功(安装过程未报错,但提示找不到qemu-img找不到的话,可以尝试注销后再登录试试)。

image.png

版本号 5.2.0,符合官方的最低要求。

取消CD源

安装完QEMU后,其它的软件我们还是希望能够直接从网上安装了,此时则需要禁用下这个CD源。
在KDE中我们依次这么做:

image.png

image.png

image.png

image.png

其它要求

除了操作系统版本、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,按官方的说法,则需要安装AppIndicatorKStatusNotifierItem两个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...

image.png

点击下载到Downloads文件夹中。

安装package

下载完成后,进入下载文件的文件夹,本文为Downloads,执行以下命令:

$ cd ~/Downloads
$ sudo apt-install update
$ sudo apt-get install ./docker-desktop-<version>-<arch>.deb
<version>-<arch> 根据你实际下载的文件名进行替换

此时将会自动执行一系列操作,静待完成。

image.png

按官方的说法,安装完成后会自动执行3个脚本:

image.png

其中一个是向/etc/hosts添加一个k8s的DNS指向,所以我们也可以使用查看/etc/hosts文件的方式来确认安装是否成功:

image.png

启动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状态。

image.png

然后本文使用systemctl --user status docker-desktop | more来查看最终的报错原因:

image.png

image.png

google一通并没有发现有用的效果,于是:开始卸载当前4.11.0版本,安装一个指定的4.8.2版本。

如果你很幸运的没有翻车,那么可以继续阅读开机自启动了

开机自启动

卸载

首先我们停止docker:

$ systemctl --user stop docker-desktop

然后执行卸载命令:

$ sudo apt remove docker-desktop

image.png

下载4.8.2

同样使用debian中的浏览器,打开官网:https://docs.docker.com/desktop/

然后点击版本发行菜单:

image.png

再找到4.8.2,点击Debian进行文件下载。

image.png

然后继续执行一遍前面的安装过程:

image.png

然后还出现相关的错误。

放弃!

仅安装Docker Engine好了


潘杰
3.1k 声望238 粉丝