我们很容易就可以在你的环境中安装docker,只要你选择好你的安装方式即可。Docker
实际上分为Docker Desktop
和 Docker engine
。Docker Desktop是一个桌面应用程序,可以在各种linux、macOS和windows 10上安装。
在Linux中,我们通常安装Docker engine
而非Docker Desktop
,但是需要注意 Docker Desktop
和Docker 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软件包来完成手动的安装。步骤如下:
-
转到 https://download.docker.com/linux/centos/ 并选择您的 CentOS 版本。然后浏览并下载要安装的 Docker 版本的文件。
-
安装 Docker 引擎,将下面的路径更改为下载 Docker 包的路径。
$ sudo yum install /path/to/package.rpm Docker 已安装,但尚未启动。组已创建,但没有 用户将添加到组中。
-
启动 Docker。
$ sudo systemctl start docker
-
通过运行映像来验证 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。
设置存储库
- 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- 添加 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
- 使用以下命令设置存储库:
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 引擎时下载一个新文件。
- 转到https://download.docker.com/linux/ubuntu/dists/.
- 在列表中选择你的 Ubuntu 版本。
- 转到并选择适用的体系结构。
- 下载以下适用于 Docker 引擎、CLI、containerd 和 和 Docker Compose 包:deb
- containerd.io_
_ .deb - docker-ce_
_ .deb - docker-ce-cli_
_ .deb - docker-compose-plugin_
_ .deb
- containerd.io_
- 安装软件包。将以下示例中的路径更新为 你下载了 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 守护程序会自动启动。
- 通过运行映像验证 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
此命令下载测试映像并在容器中运行它。当 容器运行,它会打印一条消息并退出。