服务器不会用?教你ubuntu 安装 docker

服务器 0

一、检查卸载老版本docker

🧑‍🍼注意:以下的操作均在root用户中进行。

ubuntu下自带了docker的库,不需要添加新的源。 但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。

$ apt-get remove docker docker-engine docker.io containerd runc
  • docker: 这是 Docker 软件的核心包,用于容器化应用程序和管理容器。

  • docker-engine: 这是 Docker 引擎的软件包,是 Docker 的核心组件之一。

  • docker.io: 这是 Docker 软件的另一个软件包。

  • containerd: 这是一个用于管理容器的守护进程,通常与 Docker 一起使用。

  • runc: 这是一个用于运行容器的轻量级工具,也是 Docker 中一个关键的组件。

综合起来,这个命令的作用是从系统中移除 Docker 相关的软件包,包括 Docker、Docker 引擎、Docker.io、Containerd 和 Runc。执行这个命令将卸载这些软件包,从而清理系统中与 Docker 相关的组件。请确保在执行此命令之前,你确实想要卸载这些软件包,并且理解这可能会影响到系统中正在运行的容器和相关服务。

image-20240328195302802


二、安装步骤

1、更新软件包

在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本

sudo apt update

image-20240328195546813


2、安装docker依赖

Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖:

apt-get install ca-certificates curl gnupg lsb-release

这个命令是针对 Ubuntu 或者 Debian 等基于 APT (Advanced Package Tool) 包管理系统的 Linux 发行版。

  • ca-certificates: 这是一个包含公共 CA 证书的软件包,用于验证网络连接的安全性,特别是在使用 HTTPS 连接时。

  • curl: 这是一个用于在命令行下传输数据的工具,支持多种协议,如 HTTP、HTTPS、FTP 等。

  • gnupg: 这是 GNU Privacy Guard 的缩写,是一个用于加密和签名数据的工具,通常用于验证软件包的真实性。

  • lsb-release: 这是一个包含 Linux Standard Base (LSB) 版本信息的软件包,可以用于确定系统正在运行的 Linux 发行版的版本信息。

综合起来,这个命令的作用是安装 ca-certificates(CA 证书)、curl(数据传输工具)、gnupg(加密和签名工具)以及 lsb-release(Linux 发行版信息)。这些软件包在系统中具有不同的作用,例如确保安全的网络连接、数据传输、数据加密和签名,以及获取系统的发行版信息。

执行这个命令将安装这些软件包,使系统能够更好地支持安全的网络通信和数据传输,并提供其他相关功能。

image-20240328195824555


3、添加Docker官方GPG密钥

执行以下命令来添加Docker官方的GPG密钥:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

这个命令是一个用于在 Ubuntu 系统上安装 Docker 的命令:

  • curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg: 这部分使用 curl 命令从指定 URL 下载文件。在这种情况下,它下载了一个 GPG 密钥,该密钥用于验证 Docker 软件包的真实性和完整性。-fsSL 选项用于在下载文件时静默执行、跟随重定向、并支持 SSL。

  • |: 这是管道符号,用于将 curl 命令的输出传递给下一个命令。

  • sudo apt-key add -: 这部分使用 apt-key 命令向系统添加 GPG 密钥。在这个命令中,- 表示从标准输入读取数据,也就是将 curl 命令下载的 GPG 密钥通过管道传递给 apt-key add 命令。

综合起来,这个命令的作用是从指定的 URL 下载 Docker 软件包的 GPG 密钥,并将其添加到系统的信任密钥列表中,以便在后续安装 Docker 软件包时进行验证。

请注意,这个命令中涉及的 URL 可能会根据实际情况而变化,以确保下载的是最新的 GPG 密钥。执行这个命令是安装 Docker 的准备步骤之一。安装成功界面如下:

image-20240328200023174


4、添加Docker软件源

执行以下命令来添加Docker的软件源:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

这个命令是用于在 Ubuntu 系统上添加 Docker 软件源的命令:

  • sudo add-apt-repository: 这是一个用于向 APT 软件源列表中添加新软件源的命令。sudo 用于以超级用户权限运行该命令,以确保权限足够来修改软件源列表。

  • "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable": 这部分是要添加的软件源的具体信息:

    • deb: 表示这是一个 Debian 软件源。
    • [arch=amd64]: 指定了软件包适用的 CPU 架构,这里是指定为 amd64 架构。
    • http://mirrors.aliyun.com/docker-ce/linux/ubuntu: 这是软件源的 URL,指向阿里云的 Docker 软件源。
    • $(lsb_release -cs): 这部分会被替换为当前系统的 Ubuntu 版本代号,lsb_release -cs 命令用于获取当前系统的发行版代号。
    • stable: 这表示要添加的软件源是稳定版本的 Docker 软件包。

综合起来,这个命令的作用是向系统的软件源列表中添加一个指向阿里云 Docker 软件源的条目,以便在后续使用 APT 包管理器安装 Docker 时,系统能够从这个软件源获取相应的软件包。

执行这个命令将确保系统知道从哪里获取 Docker 软件包,并且能够在安装 Docker 时正确地从指定的软件源中下载所需的软件包。成功界面如下:

image-20240328200230581


5、安装docker

执行以下命令来安装Docker:

apt-get install docker-ce docker-ce-cli containerd.io

这条命令是用于在 Ubuntu 系统上安装 Docker 相关软件包的命令:

  • apt-get install: 这是 Ubuntu 系统中用于安装软件包的命令,apt-get 是一个包管理工具,用于从软件源中下载、安装和管理软件包。

  • docker-ce: 这是 Docker 社区版 (Community Edition) 的主要软件包,包含了 Docker 引擎和相关的工具。

  • docker-ce-cli: 这是 Docker 社区版的命令行客户端工具,用于与 Docker 引擎进行交互。

  • containerd.io: 这是一个用于管理容器运行时的工具,Docker 引擎使用它来管理容器的生命周期。

综合起来,这个命令的作用是使用 apt-get 包管理工具从系统的软件源中下载并安装 Docker 社区版的主要软件包 docker-ce、命令行客户端工具 docker-ce-cli,以及容器运行时管理工具 containerd.io

执行这条命令后,系统将会下载这些软件包并安装在系统中,使得你可以开始在 Ubuntu 上使用 Docker 来构建、部署和运行容器化应用程序。中间会让你输入一次y,成功界面如下:

image-20240328200456190


6、配置用户组(可选)

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。

首先我们查看当前docker组中的成员。

getent group docker

image-20240328200753674

现在把用户lxl添加进docker用户组。

gpasswd -a lxl dockergetent group docker

如图所示,用户lxl已经被添加进docker用户组。

image-20240328201055997


7、运行docker

我们可以通过启动docker来验证我们是否成功安装。命令如下:

systemctl start docker

systemctl start docker 是一个用于在系统上启动 Docker 服务的命令:

  • systemctl: systemctl 是一个用于管理 systemd 服务的命令行工具。systemd 是一个在许多现代 Linux 系统上用于启动、停止和管理系统服务的系统和服务管理器。

  • start: startsystemctl 命令的一个参数,用于启动指定的服务。

  • docker: docker 是要启动的服务的名称,这里指的是 Docker 服务,它允许你在系统上运行容器化应用程序。

因此,当你运行 systemctl start docker 命令时,它会告诉 systemd 启动 Docker 服务。这将启动 Docker 守护进程,使你能够开始在系统上运行和管理 Docker 容器。


8、安装工具

apt-get -y install apt-transport-https ca-certificates curl software-properties-common

这条命令是用于在 Debian 或 Ubuntu 等基于 Debian 的 Linux 发行版上安装软件包的命令:

  • apt-get: apt-get 是一个用于管理 Debian 系统软件包的命令行工具。它可以用来安装、升级、删除和管理软件包。

  • -y: -y 选项用于在安装软件包时自动回答 “yes”,即不需要用户手动确认安装操作。

  • install: installapt-get 命令的一个参数,用于指示 apt-get 安装指定的软件包。

接下来是要安装的软件包列表:

  • apt-transport-https: 这个软件包允许 apt 软件包管理器通过 HTTPS 协议下载软件包,这是一种安全的传输方式。

  • ca-certificates: 这个软件包包含了一组公共 CA 证书,用于验证 HTTPS 连接的安全性。

  • curl: curl 是一个用于在命令行中传输数据的工具,可以用来下载文件或与 Web 服务器进行交互。

  • software-properties-common: 这个软件包包含一些常用的软件源管理工具,使你可以方便地添加、删除或管理系统上的软件源。

因此,运行 apt-get -y install apt-transport-https ca-certificates curl software-properties-common 这条命令将会安装这些软件包,以确保系统具备下载软件包、验证证书和管理软件源的必要工具。成功界面如下:

image-20240328201407840


9、重启docker

service docker restart

10、验证是否成功

sudo docker run hello-world

sudo docker run hello-world 是一个用于在 Docker 上运行容器的命令:

  • sudo: sudo 是一个 Unix/Linux 系统中用于以超级用户或其他用户身份运行命令的命令。在这里,sudo 被用来以超级用户权限来执行后续的 Docker 命令。

  • docker: docker 是 Docker 容器化平台的命令行工具,用于构建、运行和管理容器。

  • run: rundocker 命令的一个参数,用于运行一个新的容器。

  • hello-world: hello-world 是一个在 Docker Hub 上提供的一个简单的示例镜像,用于展示 Docker 是否正确安装和运行。

因此,当你运行 sudo docker run hello-world 命令时,Docker 会下载 hello-world 示例镜像(如果本地没有),然后在一个容器中运行这个镜像。这个示例容器将输出一些信息,以确认 Docker 正确安装并能够运行容器。

运行命令后,结果如下:

image-20240328201517681


三、简单操作

1、查看版本

我们可以通过下面的命令来查看docker的版本

sudo docker version

结果如下:

image-20240328201924368

注意,如果是没有添加进docker用户组的,虽然可以查看版本,但是无法使用容器。

image-20240328203050288

另外,用户被添加进用户组以后,也需要重新连接才可以访问,比如之前演示使用的lxl,重启后即可连接。

image-20240328203234937


2、查看镜像

上面我们拉取了hello-world的镜像,现在我们可以通过命令来查看镜像,命令如下:

sudo docker images

结果如下图:

image-20240328202040740

到这里就恭喜你,完成了docker的安装!

也许您对下面的内容还感兴趣: