当前位置: 首页 > news >正文

在`CentOS`中安装`Docker Engine`

本文总结如何在CentOS中安装Docker Engine

〇、Docker Engine 介绍

Docker Engine是一种开源容器化技术,用于构建和容器化应用程序。Docker引擎作为一个客户端-服务器应用程序:

  • 具有长时间运行守护进程的服务器。
  • 指定接口的api,程序可以使用这些接口与Docker守护进程通信并向其发出指令。
  • 命令行接口(CLI)客户端docker。

CLI使用Docker api通过脚本或直接的CLI命令来控制Docker守护进程或与之交互。许多其他Docker应用程序使用底层API和CLI。守护进程创建和管理Docker对象,如镜像、容器、网络和卷。

一、先决条件

1. 系统要求

要求CentOS版本为: CentOS 7/CentOS 8/CentOS 8 Stream/CentOS 9 Stream
要求centos-extras仓库配置开启(默认是开启的)
如果你的yum源有问题请参考:
CentOS 执行yum命令报错【错误:为仓库 ‘appstream‘ 下载元数据失败: …】

如下是CentOS8中的CentOS-Linux-Extras.repo,要求enabled=1

[root@GC yum.repos.d]# cat /etc/yum.repos.d/CentOS-Linux-Extras.repo
# CentOS-Linux-Extras.repo
# ...[extras]
name=CentOS Linux $releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=https://mirrors.aliyun.com/centos-vault/8.4.2105/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2. 卸载旧版本

卸载旧版本的docker or docker-engine,如果你使用的是新安装的CentOS,可以忽略该步骤

执行如下命令,进行卸载

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

示例(root用户无需加sudo):

[root@GC ~]# yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine
Failed to set locale, defaulting to C.UTF-8
No match for argument: docker
No match for argument: docker-client
No match for argument: docker-client-latest
No match for argument: docker-common
No match for argument: docker-latest
No match for argument: docker-latest-logrotate
No match for argument: docker-logrotate
No match for argument: docker-engine
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!
[root@GC ~]

因为我是新安装的,所以:No packages marked for removal

二、安装 Docker Engine

安装Docker Engine的方式有多种,本文使用Docker仓库安装

1. 设置Docker仓库

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装yum-utils包,然后使用该包下的yum-config-manager命令配置Docker仓库

2. 安装Docker引擎

安装最新版本的Docker EnginecontainerdDocker Compose

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

3. 启动docker

sudo systemctl start docker

如果你使用systemctl命令报错,请参考:
使用systemctl命令报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.

4. 验证docker安装是否成功

sudo docker run hello-world

如下,可正常运行hello-world表示安装成功了。

[root@GC ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:dcba6daec718f547568c562956fa47e1b03673dd010fe6ee58ca806767031d1c
Status: Downloaded newer image for hello-world:latestHello 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 theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare 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/[root@GC ~]#

三、卸载Docker

如果你需要卸载Docker,可以参考如下命令:

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

上述命令,不会删除imagescontainersvolumes等数据,
你可以再执行如下命令进行删除:

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


参考资料:
Install Docker Engine on CentOS

http://www.lryc.cn/news/144863.html

相关文章:

  • [ VMware 虚拟机 ] 启动不了图形界面,报 “The system is running in low-graphics mode” 错误
  • 如何提高视频清晰度?视频调整清晰度操作方法
  • IO进程线程,文件与目录,实现linux任意目录下ls -la
  • R语言如果列表中有列表,且每个子列表有一个向量:如何转变为仅仅一个列表里面含有向量
  • nrm管理源仓库及发布私人npm包
  • 云计算——虚拟化中的网络架构与虚拟网络(文末送书)
  • B - 负环
  • 居中一个元素(水平+垂直居中)
  • React笔记(二)JSX
  • [多标签分类]MultiLabelBinarizer: 从one-hot 到multi-hot
  • 【校招VIP】前端算法考察之排序
  • 集创北方ICN6211 是一款MIPIDSI转RGB视频桥接IC
  • SMT制造中的产品质量检验和管理
  • 对接webservice接口时报错:发送方和接收方 Action 不匹配
  • python实现/直播服务器/聊天服务器/的多种解决方案
  • PbootCMS 3.0.4 SQL注入
  • SpringBoot异步方法支持注解@Async应用
  • UI/UX设计与前端开发:从零到一打造完美用户体验
  • Hadoop Hdfs基本命令
  • Spring Boot 整合MyBatis(超详细)
  • 【管理运筹学】第 6 章 | 运输问题(4,表上作业法 |闭回路调整法以及特殊情况 | 产销不平衡的运输问题)
  • Greenplum实用技巧
  • 以物联网为核心的智慧工地云平台:聚集智能技术,实现建筑工地智慧管理
  • Java项目-苍穹外卖-Day05-Redis技术应用
  • linux安装jmeter
  • 【笔记】泛型以及如何绕过泛型定义
  • JAVA JNA 调用C接口的三种方式
  • StarRocks入门到熟悉
  • 华为AR路由器 典型配置案例——以太网交换
  • DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件