在Linux环境下安装docker

发布时间 2024-01-09 19:47:53作者: 柯南。道尔

在Linux环境下安装docker

docker desktop和docker engine

在官网下载docker时有两种选择:docker engine 和 docker desktop

docker desktop
docker desktop是一种一键式安装的应用程序,适用于Mac、Linux或Windows环境,运行你构建、共享和运行容器话应用程序和微服务。它提供了直观的图形用户界面(GUI:Graphical User Interface),允许你直接从你的机器上管理容器、应用程序和镜像。你可以单独使用docker deaktop,也可以将其作为CLI(客户端)的补充工具。docker desktop 减少了花在复杂设置上的时间,因此你可以专注于编写代码。它负责端口映射、文件系统问题和其他默认设置,并定期修改错误与安全更新。
docker desktop包含以下内容:
1.docker engine
2.docker CLI client
3.docker scout
4.docker buildx
5.docker extensions
6.docker compose
7.docker content trust
8.kubernetes
9.credential helper

docker engine
docker engine是一种开源容器化技术,用于构建和容器化应用程序。docker engine作为一个客户端-服务器应用程序:
1.具有长时间运行守护进程的服务器(dockerd)
2.指定接口的API,程序可以使用这些接口与docker守护进程进行通信和发起指令(docker APIS)
3.命令行接口(CLI)客户端(docker)
CLI使用docker APIS通过脚本或直接使用CLI命令来控制docker守护进程。很多其他docker应用程序使用底层API和CLI。守护进程创建和管理docker对象:如镜像、容器、网络、卷。

对比docker desktop和docker engine,如果是开发环境,推荐使用docker desktop;如果是生产环境,推荐使用docker engine。

docker engine的下载与安装

由于docker desktop是一键式安装,这里只讲docker engine在Centos7环境下的下载与安装

在线安装

1.卸载旧版本

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

注: 当卸载docker时,存储在/var/lib/docker/中的映像、容器、卷和网络不会自动删除。

2.设置docker的存储库

安装yum工具包
yum install -y yum-utils
设置docker官方镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

注: docker-ce.repo配置文件会存放在/etc/yum.repos.d路径下

3.安装最新版本docker引擎(docker engine)

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

注: 
安装过程中,如果系统提示你接受GPG密钥,如果指纹是[060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35],则接受。
此命令安装docker,但不会启动docker。它还创建了一个docker组,但是,默认情况下,他不会将任何用户添加到组中。

4.安装其他版本docker引擎(docker engine)

如果不想安装最新版本,可以选择安装其他stable版本

列出镜像仓库中可用版本
yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64            3:24.0.7-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.6-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.5-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.4-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.3-1.el7                      docker-ce-stable
<...>
注:返回的列表取决与启用了哪些镜像仓库,并且特定于你的centos版本

通过指定安装包名来安装特定的版本,由包名(docker-ce)加上版本字符串,用分隔字符(-)相连,例如:docker-ce-24.0.3-1.el7

例如:安装23年stable版本的docker engine
yum install docker-ce-23.0.6-1.el7 docker-ce-cli-23.0.6-1.el7 containerd.io docker-buildx-plugin docker-compose-plugin

5.启动docker服务

systemctl start docker

6.通过运行hello-world镜像来验证是否成功安装docker

查看docker版本号
docker --version
运行hello-world镜像
docker run hello-world

如果能正常运行hello-world容器则安装成功

离线安装

1.卸载旧版本

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

注: 当卸载docker时,存储在/var/lib/docker/中的映像、容器、卷和网络不会自动删除。

2.下载特定版本的rpm包并安装

建议找一个同一架构,操作系统能连外网的环境,通过yum install来查看需要下载哪些rpm包,这里以下载23年stable版本的docker engine为例

官方下载网址:https://download.docker.com/linux/centos/

由上图我们可以找到下载23年stable版本docker engine的依赖包有:
containerd.io-1.6.26-3.1.el7.x86_64.rpm
docker-buildx-plugin-0.11.2-1.el7.x86_64.rpm
docker-ce-23.0.6-1.el7.x86_64.rpm
docker-ce-cli-23.0.6-1.el7.x86_64.rpm
docker-ce-rootless-extras-24.0.7-1.el7.x86_64.rpm
docker-compose-plugin-2.21.0-1.el7.x86_64.rpm

将依赖包都放到一个文件夹,安装所有依赖包
rpm -ivh *.rpm --force

docker engine的卸载

1.卸载docker engine,CLI,containerd,docker compose的安装包

yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2.主机上的镜像、容器、卷、自定义配置文件不会自动删除。删除所有镜像、容器和卷

rm -rf /var/lib/docker
rm -rf /var/lib/containerd

3.启动docker服务

systemctl start docker

4.通过运行hello-world镜像来验证是否成功安装docker

查看docker版本号
docker --version
运行hello-world镜像
docker run hello-world

如果能正常运行hello-world容器则安装成功

docker run的运行流程

参考资料

https://docs.docker.com/desktop/
https://docs.docker.com/engine/
https://docs.docker.com/engine/install/centos/