Docker安装

时间:2023-02-05 18:06:06

我们很容易就可以在你的环境中安装docker,只要你选择好你的安装方式即可。
Docker实际上分为Docker DesktopDocker engine。Docker Desktop是一个桌面应用程序,可以在各种linux、macOS和windows 10上安装。
在Linux中,我们通常安装Docker engine而非Docker Desktop,但是需要注意 Docker DesktopDocker engine一样好用.
在Linux中,Docker提供了多个系统的软件包和二进制文件。这些受支持的系统包括:

  • CentOS
  • Debian
  • Fedora
  • Raspbian
  • RHEL
  • SLES
  • Ubuntu

毫无疑问,其他的Linux系统同样可以安装 Docker,Docker提供了用于手动安装 Docker engine的二进制文件,这些二进制文件是静态链接的,可以在任何Linux发行版上使用。
我将演示在Centos和ubuntu上安装docker engine,并在最后介绍二进制安装。

CenOS安装 Docker engine

Docker中存在一些可以配置的选项,这里选择了官方文档推荐的配置,你可以根据自己的需要更改这些配置。

卸载旧版本

如果你此前已经安装过docker engine,那么这步是必须的,请使用以下的命令:

 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

如果yum包管理器回复未安装,那么这不会影响到之后的安装。
这里需要注意,卸载docker时,存储在 /var/lib/docker/目录下的镜像,容器,卷和网络并不会自动删除。

安装方式选择

Docker 提供了几种不同的安装选项,以应对不同的环境。

  • 设置 Docker 的存储库并使用包管理器安装。这是推荐的方法
  • 下载 RPM 软件包并手动安装管理 Docker,这种方式在无法访问互联网的系统中很有用。
  • 在测试和开发环境中,可以使用官方提供的自动化脚本来安装 Docker。

Docker存储库安装

让我先介绍官方教程,然后我将提供过程更为简洁的办法。

1.设置存储库

安装需要的软件包并设置 Docker 的存储库,使用以下命令。

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
2.安装Docker engine

安装 Docker engine、containerd和docker compose
要安装最新的版本,运行以下命令:

sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

这个命令安装了Docker,但是并不会启动Docker。同时它还会创建Docker组,默认情况下并不会向该组添加任何用户。
如果你需要安装特定版本,这在很多时候都是被要求执行的。
首先需要列出存储库中的可用版本,使用以下命令:

yum list docker-ce --showduplicates | sort -r

 docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
 docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
 docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
 docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable

返回的列表中显示了软件包的版本,安装特定版本时需要指定包名称加上版本字符串。
<VERSION_STRING>替换为所需的版本,执行以下命令:

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
3.启动docker
sudo systemctl start docker

我们可用通过运行镜像来验证安装是否成功:

sudo docker run hello-world

此命令将下载测试镜像并在容器中运行,当容器运行,它会打印确认信息并退出。

4.后续步骤

不出意外的话,此时你已经成功安装了Docker。这里需要告知,如果希望以非 root 用户身份来管理docker,那么你还需要执行下面这些步骤。
创建组 docker

sudo groupadd docker

将用户添加到组中

sudo usermod -aG docker $USER

注销并重新登录,这样可以重新评估组成员身份,或者可以运行以下命令来激活对组的更改

newgrp docker

你可以以非root用户的身份执行docker命令。

5.流畅的执行

一般国内安装docker存储库,有时访问会有所不便,选择国内源进行安装也是一个不错的办法,这里使用ustc的docker源为例。
1)添加docker存储库

curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

或者使用以下命令,手动填充存储库文件。

cat> /etc/yum.repos.d/docker-ce.repo << EOF
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://download.docker.com/linux/centos/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://download.docker.com/linux/centos/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://download.docker.com/linux/centos/$releasever/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://download.docker.com/linux/centos/$releasever/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
EOF

这之后的环节和以上步骤一样,仅仅方便无法从官方存储库中安装的朋友。

使用包安装

如果无法使用docker存储库,那真是很糟糕,不过你可以下载RPM软件包来完成手动的安装。步骤如下:

  1. 转到 https://download.docker.com/linux/centos/ 并选择您的 CentOS 版本。然后浏览并下载要安装的 Docker 版本的文件。

  2. 安装 Docker 引擎,将下面的路径更改为下载 Docker 包的路径。

    $ sudo yum install /path/to/package.rpm 
     Docker 已安装,但尚未启动。组已创建,但没有 用户将添加到组中。
    
  3. 启动 Docker。

    $ sudo systemctl start docker 
    
  4. 通过运行映像来验证 Docker 引擎安装是否成功。

    $ sudo docker run hello-world 
    此命令下载测试映像并在容器中运行它。当 容器运行,它会打印确认消息并退出。
    

使用自动化脚本安装

实际上我很喜欢这个方式,因为自动化带来的便利。
提醒,如果想要自动化脚本顺利运行,请提供root或sudo权限,这是必须的,因为脚本中包含尝试添加存储库的操作。
脚本可以自动的检测Linux发行版和版本来配置包管理系统。
使用脚本意味着你无法自定义大多数安装参数,并且,使用脚本将始终安装最新稳定版本。
提示: 运行前预览脚本步骤
可以使用以下选项运行脚本,以了解脚本将在运行时调用哪些操作:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run

使用以下命令来下载脚本并运行它安装 Linux 上 Docker 的最新稳定版本:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

注意,这个脚本将在 Debian 的发行版上自动启动 Docker,而发行版 CentOS、Fedora、RHEL或SLES,需要手动启动它。

使用国内源

自动化脚本默认使用官方存储库,我们可以向脚本中传入某些参数来更改存储库的选择,一般国内访问良好的库有阿里库和微软库:
使用阿里云存储库安装docker

curl -fsSL get.docker.com |sudo sh -s docker --mirror Aliyun

使用微软云存储库安装docker

curl -fsSL get.docker.com |sudo sh -s docker --mirror AzureChinaCloud

在Ubuntu安装Docker engine

卸载旧版本

旧版本的 Docker 的名称为 、 或 。在尝试安装之前卸载任何此类旧版本 新版本:dockerdocker.iodocker-engine
:::tips
sudo apt-get remove docker docker-engine docker.io containerd runc
:::
如果报告未安装这些包,则没关系。apt-get
存储在/var/lib/docker/中的镜像、容器、卷和网络不是 卸载 Docker 时自动删除。

使用存储库安装

在新主机上首次安装 Docker 引擎之前,您需要 需要设置 Docker 存储库。之后,您可以安装和更新 存储库中的 Docker。

设置存储库

  1. 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库:
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. 添加 Docker 的官方 GPG 密钥:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. 使用以下命令设置存储库:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker engine

要安装最新版本,请运行:

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

通过运行映像验证 Docker 引擎安装是否成功

sudo docker run hello-world

现在你已经成功安装并启动了Docker engine。用户组存在,但是它不包含任何用户,这就是需要你用sudo运行docker命令的原因。你可以执行在CentOS安装Docker engine的后续步骤来允许非root用户运行docker命令。

从包安装

如果你不能使用 Docker 的仓库来安装 Docker Engine,你可以 下载适用于您的版本的文件并手动安装。你需要 每次要升级 Docker 引擎时下载一个新文件。

  1. 转到https://download.docker.com/linux/ubuntu/dists/.
  2. 在列表中选择你的 Ubuntu 版本。
  3. 转到并选择适用的体系结构。
  4. 下载以下适用于 Docker 引擎、CLI、containerd 和 和 Docker Compose 包:deb
    • containerd.io__.deb
    • docker-ce__.deb
    • docker-ce-cli__.deb
    • docker-compose-plugin__.deb
  5. 安装软件包。将以下示例中的路径更新为 你下载了 Docker 软件包的位置。
sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
  ./docker-ce_<version>_<arch>.deb \
  ./docker-ce-cli_<version>_<arch>.deb \
  ./docker-compose-plugin_<version>_<arch>.deb

Docker 守护程序会自动启动。

  1. 通过运行映像验证 Docker 引擎安装是否成功:
sudo docker run hello-world

现在你已经成功安装并启动了Docker engine。用户组存在,但是它不包含任何用户,这就是需要你用sudo运行docker命令的原因。你可以执行在CentOS安装Docker engine的后续步骤来允许非root用户运行docker命令。

自动化脚本安装

自动化脚本可以自动检测Linux发行版,因此在受支持的Linux发行版中运行自动化脚本的步骤是一致的,如果你想使用自动化脚本来安装Docker engine,请参阅在CentOS中安装Docker engine的使用自动化脚本安装一节。

二进制文件安装

不建议在生产环境中使用二进制文件安装Docker engine,如果你的容器技术专家建议你这么做,那么请换一个专家。
二进制文件安装主要是为了不受支持的平台和测试环境中使用。我将简短的介绍在Linux上安装守护程序和客户端二进制文件。

安装静态二进制文件

1.下载静态二进制压缩包,转到https://download.docker.com/linux/static/stable/,选择适合你的压缩包。
2.提取压缩包中的二进制文件

tar xf /path/to/<FILE>.tar.gz

3.这一步可选,将二进制文件移动到可执行文件路径下,如果没有这一步,则必须提供调用可执行文件的路径。

sudo cp docker/* /usr/bin/

4.启动 Docker 守护进程:

sudo dockerd &

如果尼西亚使用其他选项启动守护进程,请修改上述内容命令或创建并编辑文件/etc/docker/daemon.json以添加自定义配置选项。
5.通过运行镜像来验证 Docker 是否已正确安装。

sudo docker run hello-world

此命令下载测试映像并在容器中运行它。当 容器运行,它会打印一条消息并退出。