【Docker】1.在Ubuntu系统下安装Docker

在Ubuntu系统下安装Docker

通常来说直接按照官网教程的步骤安装即可,官网安装教程地址(以Ubuntu为例,不同Linux发行版的安装步骤可能存在不同):https://docs.docker.com/engine/install/ubuntu/

下面是根据官网提供的在Ubuntu 22.04 (LTS)上安装Docker的教程而整理出的步骤,可以作为一个官网教程的中文参照版来进行查阅。

1.卸载可能与Docker发生冲突的旧版包

在安装Docker Engine之前,您需要卸载所有会发生冲突的软件包。
要卸载的非官方软件包是:

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • podman-docker

此外,Docker Engine将containerdrunc打包成了一个docker.io包,所以如果你的设备中安装了containerdrunc,你也需要卸载它们。

可以在Ubuntu中运行以下指令来卸载所有可能产生冲突的包:

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

2.配置清华镜像源

在安装Docker Engine之前,您需要配置Docker的apt仓库,以便可以从仓库中安装和更新Docker。但是,在配置Docker的apt仓库之前,我们最好先配置清华镜像源。Ubuntu配置清华镜像源的教程请移步到:【Linux】2.Ubuntu配置清华镜像源

3.设置Docker的apt仓库

在新主机上首次安装Docker Engine之前,需要先为Docker设置apt仓库,以便可以从仓库中安装和更新Docker。

可以通过逐条执行以下命令来设置Docker的apt仓库:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
# 这一句没有魔法在国内可能会报错,可以将链接换成清华镜像源,如:
# sudo curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

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

以下是对这些命令的详细解释:

  1. sudo apt-get update
    这个命令会更新本地包索引。apt-get是Ubuntu中用于管理软件包的工具,update参数会更新软件包列表,确保后续安装的软件是最新的。

  2. sudo apt-get install ca-certificates curl
    这个命令安装ca-certificatescurl软件包。ca-certificates包含了证书认证机构的证书,用于确保下载的软件包是可信的;curl是一个命令行工具,用于从互联网上传输数据。

  3. sudo install -m 0755 -d /etc/apt/keyrings
    这个命令创建了一个名为keyrings的目录在/etc/apt/下,并设置了目录权限为755(即目录所有者具有读、写、执行权限,而组用户和其他用户只有读和执行权限)。install命令用于创建目录并设置权限。

  4. sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    这个命令使用之前安装的curl工具下载Docker的官方GPG密钥,并将下载的密钥保存为/etc/apt/keyrings/docker.asc
    -f表示如果服务器返回错误状态码,则静默失败。也就是说,如果服务器返回 4xx 或 5xx 错误码,curl 将不会显示错误消息,但仍然无法下载文件。
    -s表示以静默模式运行,也就是说 curl 不会向控制台输出任何进度信息或错误消息。
    -S表示如果 curl 在下载过程中出现错误,则显示错误消息。
    -L表示跟随重定向,如果服务器返回重定向响应,curl 将自动跟随重定向并从新位置下载文件。

  5. sudo chmod a+r /etc/apt/keyrings/docker.asc
    这个命令修改了上面下载的Docker密钥文件docker.asc的权限,使其可以被所有用户读取。chmod是改变文件权限的命令,a+r表示给所有用户添加读权限。

  6. echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    这个命令的作用是将Docker的APT仓库信息添加到Ubuntu系统的/etc/apt/sources.list.d/docker.list文件中,以便后续可以通过apt-get命令来安装和更新Docker相关的软件包。

    • 其中,第一部分是:echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable": 这部分命令使用echo输出一个字符串,这个字符串包含了Docker APT仓库的地址和相关的GPG密钥信息。具体来说:
      • deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc]: 这部分指定了仓库的类型(deb)、仓库所支持的架构(通过dpkg --print-architecture命令获取)以及仓库的GPG密钥文件位置(/etc/apt/keyrings/docker.asc)。
      • https://download.docker.com/linux/ubuntu: 这是Docker仓库的URL地址。
      • $(. /etc/os-release && echo "$VERSION_CODENAME"): 这部分通过读取/etc/os-release文件获取当前Ubuntu系统的版本代号(如focal、bionic等),并将其拼接到仓库地址中。
    • 第二部分是:| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null: 这部分命令将上一步echo输出的字符串通过管道|传递给sudo tee命令。tee命令的作用是将输入的数据同时输出到标准输出和指定的文件中。这里的指定文件是/etc/apt/sources.list.d/docker.list,这是一个用于存放第三方APT仓库信息的文件。同时,> /dev/null将标准输出重定向到空设备,即不显示在终端上。
  7. sudo apt-get update
    再次运行sudo apt-get update,这次是为了更新刚刚添加的Docker仓库的软件包索引。

4.安装Docker

在Ubuntu中运行以下命令即可安装最新版Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5.测试安装是否成功

此处通过运行hello-world镜像来测试Docker是否安装成功。命令如下:
sudo docker run hello-world

如果安装成功,会输出以下信息。由于现在国内镜像站关闭了DockerHub相关服务,所以在没有魔法的情况下不会出现Hello from Docker!的提示,但只要能看到This message shows that your installation appears to be working correctly,说明安装成功。

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值