Linux系统Ubuntu配置Docker详细流程

简介: Linux系统Ubuntu配置Docker详细流程

  本文介绍在Linux操作系统Ubuntu18.04及以上版本中,配置开源容器化平台和工具集Docker的详细方法;其中,我们以配置Docker平台的核心组件之一——Docker Engine为例来详细介绍。

  首先,大家需要明确,我们常说的Docker,其实就是指的Docker DesktopDocker Engine这两个东西。其中,Docker Desktop软件是适合于桌面操作系统的、完整的Docker,而Docker Engine则是Docker的核心运行引擎;Docker Desktop软件包含了Docker Engine和其他一些附加的功能。关于下载Docker Desktop还是Docker Engine,简单来说,就是如果在桌面操作系统(比如Windows电脑、Mac电脑中),就下载Docker Desktop软件,因为其可以通过图形化的界面来实现多种Docker功能;若是在服务器、Linux电脑等平台,则下载Docker Engine即可,因为其可以通过命令行来完成各项Docker功能。关于二者的更详细介绍与区分,大家可以参考Docker官网给出的阐述,这里就不再赘述。

  话不多说,我们开始Docker Engine的具体配置。其中,本文所涉及的全部代码,都在终端中执行即可。

1 预处理

  首先,我们需要确保电脑中没有老版本的Docker及其组件。例如,我这里的电脑虽然没有Docker应用,但是还是能搜索到一些关于docker的文件或文件夹;如下图所示。

  因此,除非大家的电脑是刚刚买回来、什么都没有配置过的新电脑,其他情况下都建议大家首先执行如下的代码。

sudo apt-get remove docker docker-engine docker.io containerd runc

  上述代码使用apt-get命令来移除Docker相关软件包和容器运行时的命令。其中,sudo是一个用于以超级用户(root)权限运行命令的关键词;通过使用sudo,可以执行需要管理员权限的操作。随后的apt-get是用于在DebianUbuntu等基于DebianLinux发行版中进行软件包管理的命令行工具。removeapt-get命令的一个选项,用于从系统中卸载指定的软件包。dockerdocker-enginedocker.iocontainerdrunc都是要卸载的软件包的名称,指定了Docker及其相关组件的软件包名称。通过在命令中列出这些软件包的名称,apt-get将卸载它们及其相关的文件和配置。

  运行上述代码,如下图所示。可以看到,我的电脑中其实之前也并没有什么Docker的相关文件。

  此外,我们还可以用Docker官网提供的一句代码来实现上述类似的功能;它的作用和前述代码一致。

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc;
do sudo apt-get remove $pkg;
done

  运行上述代码,如下图所示。

  接下来,我们需要更新一下系统的软件包列表;通过如下的代码即可实现这一需求。

sudo apt-get update

  运行上述代码,系统会连接到软件包仓库服务器,并检查是否有可用的更新版本和新的软件包。这个命令会更新本地系统中的软件包列表,以反映最新的可用软件包信息。

  在运行其他apt-get命令(如安装软件包、升级系统等)之前,通常建议先运行上述代码,确保系统获得最新的软件包列表。这样可以确保我们从最新的软件包仓库中获取软件包,并减少因为旧版本软件包而可能导致的问题。

  需要注意,apt-get update只会更新软件包列表,而不会实际下载或安装软件包。如果后面我们要安装或升级软件包,需要进一步使用apt-get installapt-get upgrade才可以。

  运行上述代码,如下图所示。其中紫色框内是我们输入电脑账户密码的地方。

  运行上述代码,有的时候会有一些报错,如下图所示。但一般情况下,这些报错都不会影响我们后续的正常操作。

2 存储库配置

  接下来,我们需要通过如下的代码,使得apt可以通过HTTPS来使用仓库(这个是Docker必要的条件)。

sudo apt-get install ca-certificates curl gnupg

  其中,ca-certificates是一个软件包名称,它包含了一组根证书和中间证书,用于验证HTTPS连接的安全性;安装ca-certificates软件包可以确保系统具有最新的根证书列表。curl是一个用于在命令行中进行网络请求的工具,它支持多种协议,如HTTPHTTPSFTP等;安装curl软件包可以让我们在终端中方便地进行网络请求和下载文件。gnupgGNU隐私卫士(GNU Privacy Guard)的缩写,也称为GPG;它是一个用于加密和签名数据的工具集,安装gnupg软件包可以在系统中使用GPG密钥和加密功能。

  运行上述代码,如下图所示。

  接下来,我们通过如下代码,设置Docker软件源的GPG密钥;这个GPG是一个用于加密和签名数据的工具。

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

  首先,-m 0755是设置文件或目录的权限的选项,0755表示所有者具有读、写和执行权限,而其他用户具有读和执行权限。随后的-d /etc/apt/keyrings指定要创建的目录路径,其创建一个名为/etc/apt/keyrings的目录。该命令的目的是创建/etc/apt/keyrings目录,该目录将用于存放密钥文件。

  接下来,-fsSLcurl命令的选项,用于指定请求的方式和参数;其中,-fsSL意味着以静默模式发送请求(不显示进度信息),并跟随重定向。其后的链接,则是要获取的GPG密钥的URL。再随后的|是管道符号,用于将前一个命令的输出作为后一个命令的输入。--dearmor用于将二进制格式的GPG密钥转换为文本格式,并随后指定将转换后的GPG密钥保存到/etc/apt/keyrings/docker.gpg文件中。该命令的目的是使用curl从指定的URL下载Docker软件源的GPG密钥,并将其转换为文本格式后保存。

  其次,chmod是一个用于修改文件或目录权限的命令,a+r表示将读权限授予所有用户,最后的路径则是要修改权限的文件路径。该命令的目的是将GPG密钥文件的读权限授予所有用户,以确保所有用户都能够读取该文件中的密钥信息。

  运行上述代码,如下图所示。

  接下来,我们需要配置Docker存储库,代码如下。

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  首先,echo是一个用于在终端输出文本的命令,引号内的内容则是要输出的文本。这里的[arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg]是一个APT源的配置选项,用于指定软件体系结构和GPG密钥的位置;其中的$(dpkg --print-architecture)是一个子命令,用于获取当前系统的体系结构。随后的链接,则是Docker软件源的URL

  接下来,$(. /etc/os-release && echo "$VERSION_CODENAME")是一个子命令,用于获取当前系统的Ubuntu版本代号(codename),其后的/etc/os-release文件包含有关操作系统的信息。stable表示要使用Docker软件源的稳定版本。

  随后,tee是一个用于从标准输入读取数据并将其写入文件的命令。/etc/apt/sources.list.d/docker.list是要写入数据的文件路径。> /dev/null是将命令的输出重定向到空设备(null设备),即丢弃输出。该命令的目的是使用sudo权限将Docker软件源的配置信息写入到/etc/apt/sources.list.d/docker.list文件中,并将输出重定向到空设备,以避免输出到终端。

  运行上述代码,如下图所示。

  接下来,不知为何,按照官网的流程,我们还需要再更新一下系统的软件包列表;我们就按照官网的说法照做即可。

sudo apt-get update

  运行上述代码,如下图所示。

3 Docker Engine配置

  接下来,我们就可以开始配置Docker Engine自身了。配置Docker Engine的流程还是很简单的,直接执行如下的代码即可。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

  其中,docker-ceDocker社区版,是Docker的核心组件;docker-ce-cli表示Docker CLI (命令行界面),用于与Docker进行交互和管理容器。containerd用于管理容器的生命周期。docker-buildx-pluginDocker Buildx插件,用于构建多平台的Docker镜像;同样的,docker-compose-plugin也是Docker Compose插件,用于定义和管理多容器应用的编排和部署。

  运行上述代码,如下图所示。

4 Docker Engine配置验证

  随后,我们验证一下Docker Engine的配置成功与否。通过如下的代码即可加以验证。该命令会下载一个测试映像并在容器中运行它。

sudo docker run hello-world

  运行上述代码,如下图所示。

  出现如上图所示的字样,就说明我们的Docker Engine配置已经成功了。

  需要说明的是,我们这篇文章只介绍了Docker Engine的下载、配置方法;关于以非root用户管理Docker的方法,大家可以参考文章Linux系统Ubuntu以非root用户身份操作Docker的方法https://blog.csdn.net/zhebushibiaoshifu/article/details/132637472);关于Docker Engine具体的使用方法,我们将在后续的博客中加以详细的介绍。

  至此,大功告成。

欢迎关注:疯狂学习GIS

相关文章
|
16天前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
78 13
|
17天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
228 11
|
11天前
|
开发工具 Docker 容器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
|
23天前
|
Docker 容器
|
23天前
|
Docker 容器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
|
1月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
42 5
|
2月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
51 3
|
2月前
|
存储 安全 数据安全/隐私保护
Docker中配置TLS加密的步骤
我们可以在 Docker 中成功配置 TLS 加密,增强 Docker 环境的安全性,保护容器之间以及与外界的通信安全。需要注意的是,在实际应用中,应根据具体情况进行更细致的配置和调整,确保符合安全要求。同时,定期更新证书和私钥,以保障安全性。
70 1
|
3月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
260 4
Linux系统之Ubuntu安装cockpit管理工具
|
30天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。