『现学现忘』Docker基础 — 10、Docker的安装
CentOS环境下的Docker官方推荐的三种安装方式
- yum安装方式
- 脚本安装方式
- 本地rpm安装方式
1、前提
- Docker要求CentOS系统的内核版本高于3.10。
通过uname -r
命令查看你当前的内核版本[root@localhost ~ ] # uname -r
3.10.0-957.el7.x86_64
- Docker目前分为两个版本:
Docker CE(社区免费版)
Docker EE(企业版,强调安全,但需付费使用)
注意:我们安装的版本为社区版。 - Docker 官方文档也可以查看详细的安装方式:
https://docs.docker.com/install/linux/docker-ce/centos/
2、通过yum安装Docker
通过yum安装Docker,也就是使用Docker镜像仓库进行安装。
在新主机上首次安装Docker Engine-Community
(docker-ce
) 之前,需要设置Docker仓库。之后就可以从仓库安装和更新Docker。
(1)更新yum包
在新安装的CentOS 7
中,一定要先更新yum
包。
$ sudo yum update
(2)移除旧的Docker版本
如果之前安装过旧版本,在安装前一定要执行一下下面的命令。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
如果出现下面提示,则证明没有安装过之前的旧版本。
已加载插件:fastestmirror
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-selinux 没有匹配
参数 docker-engine-selinux 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包
(3)安装必须的软件包
- 安装
yum-utils
提供yum-config-manager
功能。 - 同时安装的
device-mapper-persistent-data
和lvm2
,用于devicemapper
存储设备映射器,这是必须的两个软件包。(最新官方文档上没有要求安装这两个软件包)
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
(4)设置稳定yum源仓库
给yum
配置一个稳定(stable
)的仓库(也可以是镜像仓库)来下载Docker。
官方Docker镜像源地址(不推荐)
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
因为网络的原因经常下载失败:
报错:
1[Errno 14] curl#35 - TCP connection reset by peer(TCP链接被打断)
2[Errno 12] curl#35 - Timeout(链接超时)
阿里的Docker镜像源地址(推荐)
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
注意
仓库配置信息会保存到
/etc/yum.repos.d/docker-ce.repo
文件中。
在没有执行上边命令之前,是没有docker-ce.repo
文件的。执行完成上边命令之后,才生成的docker-ce.repo
文件。
(5)更新yum软件包索引
$ sudo yum makecache fast
这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度。
通常在更新yum
源或者重新配置yum
源之后,使用该命令生成缓存。(推荐执行一次该命令)
(6)开始安装Docker-ce
1)安装最新版本的Docker-ce
直接执行:$ sudo yum -y install docker-ce
2)安装指定版本的Docker-ce
- 列出数据库中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
- 选择指定的版本安装。
执行:
$ sudo yum install docker-ce-+版本号 例如:
$ sudo yum install docker-ce-18.03.1.ce
注意:
官方文档中安装Docker需要安装
docker-ce
、docker-ce-cli
、containerd.io
三个软件。我们直接安装docker-ce
就好,其他两个软件会自动匹配版本进行安装。$ sudo yum install docker-ce docker-ce-cli containerd.io $ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
如:$ sudo yum install docker-ce-18.03.1.ce
(7)查看Docker版本信息
$ sudo docker version
Client: Docker Engine - Community
Version: 20.10.5
API version: 1.41
Go version: go1.13.15
Git commit: 55c4c88
Built: Tue Mar 2 20:33:55 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
# 启动Docker执行docker version命令,显示信息更多
Client: Docker Engine - Community
Version: 20.10.5
API version: 1.41
Go version: go1.13.15
Git commit: 55c4c88
Built: Tue Mar 2 20:33:55 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.5
API version: 1.41 (minimum version 1.12)
Go version: go1.13.15
Git commit: 363e9a8
Built: Tue Mar 2 20:32:17 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.4
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0
GitCommit: de40ad0
(8)启动Docker
$ sudo systemctl start docker
(9)查看Docker状态
$ sudo systemctl status docker
(10)加入开机启动
$ sudo systemctl enable docker
(11)验证Docker是否正确安装
通过运行hello-world
镜像来验证是否正确安装了Docker Engine-Community
。
$ sudo docker run hello-world
# 出现下面显示,证明运行镜像成功
Unable to find image 'hello-world:latest' locally(本地没有找到hello-world镜像)
latest: Pulling(拉取) from library/hello-world(去远程拉取library/hello-world镜像)
1b930d010525: Pull complete(拉取完成)
Digest: sha256:d1668a9a1f5b42ed3f46b70b9cb7c88fd8bdc8a2d73509bb0041cf436018fbf5
Status: Downloaded newer image for hello-world:latest
(上面三行是拉取镜像的签名信息)
Hello from Docker!(镜像运行起来了)
This message shows that your installation appears to be working correctly.
(此消息表明您的安装似乎可以正常工作。为了生成此消息,Docker采取了以下步骤:)
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/
(12)查看本地Docker镜像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 8 days ago 13.3kB
(13)停止Docker运行
$ sudo systemctl stop docker
至此Docker安装完成。
『现学现忘』Docker基础 — 10、Docker的安装的更多相关文章
- 『现学现忘』Git基础 — 10、配置Git用户签名说明
目录 1.为什么要创建用户签名 2.为什么要在Git中配置这些信息 3.创建用户签名的方式 4.总结 1.为什么要创建用户签名 作为版本控制系统的客户端,每台客户机对版本库的所有提交操作,都需要注明操 ...
- 『学了就忘』Linux基础 — 4、VMware安装
目录 1.VMware介绍 2.VMware主要特点 3.VMware建议配置 4.VMware安装 1.VMware介绍 VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环 ...
- 『学了就忘』Linux基础 — 10、VMware虚拟机中克隆的使用
目录 1.什么是克隆 2.克隆的两种类型 (1)完整克隆 (2)链接克隆 3.克隆操作 步骤一:克隆虚拟机 步骤二:进行克隆导向 3.快照与克隆的区别 4.镜像的管理 快照和克隆是VMware中两个非 ...
- 『现学现忘』Docker基础 — 9、Docker简介
目录 1.什么是Docker? 2.Docker的出现解决了什么问题? 3.Docker的特别之处 4.Docker相关网站 1.什么是Docker? 2010年dotCloud公司在旧金山成立,PA ...
- 『现学现忘』Docker基础 — 16、Docker中的基本概念和底层原理
目录 1.Docker的底层原理 2.Docker中常用的基本概念 3.run命令的运行流程 4.为什么Docker比VM快 Docker架构图: 我们依照Docker架构图进行Docker基础概念的 ...
- 『现学现忘』Docker基础 — 34、DockerFile文件详解
目录 1.DockerFile文件说明 2.Dockerfile构建过程解析 (1)Docker容器构建三步骤 (2)Dockerfile文件的基本结构 (3)Dockerfile注意事项 (4)Do ...
- 『现学现忘』Docker基础 — 35、实战:自定义CentOS镜像
目录 1.前提说明 2.编写Dockerfile文件 3.构建镜像 4.运行镜像 5.列出镜像的变更历史 1)目标:自定义镜像wokong_centos. 2)所用到的保留字指令: FROM:基础镜像 ...
- 『现学现忘』Docker基础 — 13、通过脚本安装Docker
Docker官方提供方便用户操作的安装脚本,用起来是非常方便.但是要注意的是,使用脚本安装Docker,是安装最新版本的Docker. 注意:不建议在生产环境中使用安装脚本.因为在生产环境中一定不要最 ...
- 『现学现忘』Docker基础 — 30、Docker中数据卷相关命令
目录 1.Volume命令说明 2.Volume命令的使用 (1)创建数据卷 (2)查看本地数据卷列表 (3)打印myVolume数据卷的详细信息 (4)删除数据卷 (5)删除所有未使用的数据卷 3. ...
随机推荐
- Caffeine缓存 最快缓存 内存缓存
一.序言 Caffeine是一个进程内部缓存框架. 对比Guava Cache Caffeine是在Guava Cache的基础上做一层封装,性能有明显提高,二者同属于内存级本地缓存.使用Caffei ...
- ApacheCN 计算机视觉译文集 20210203 更新
新增了五个教程: OpenCV3 和 Qt5 计算机视觉 零.前言 一.OpenCV 和 Qt 简介 二.创建我们的第一个 Qt 和 OpenCV 项目 三.创建一个全面的 Qt + OpenCV 项 ...
- [USACO18DEC]Balance Beam P
根据题意不难发现这个模型是不好进行贪心的,于是可以考虑使用 \(dp\).可以令 \(dp_i\) 表示在 \(i\) 位置以最优策略能获得的报酬期望值,那么会有转移: \[dp_i = \max(f ...
- 再见丑陋的 SwaggerUI,这款开源的API文档生成神器界面更炫酷,逼格更高!
一般在使用 Spring Boot 开发前后端分离项目的时候,都会用到 Swagger.Swagger 是一个规范和完整的框架,用于生成.描述.调试和可视化 RESTful 风格的 Web API 服 ...
- JAVA多线程学习十-Callable与Future的应用
Callable与Runnable 先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法: public interface Runnable { publ ...
- SSH 密钥登录
一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...
- rpm与yum安装及管理程序
安装及管理程序 1.Linux应用程序基础 2.RPM软件包管理工具 3.yum源仓库创建 1.应用程序与系统命令的关系如图: 典型应用程序的目录结构如图: 常见的软件包封装类型如图: 2.RPM包 ...
- 浅谈Java正则表达式
正则表达式我们都知道,它定义了字符串的模式,可以用来搜索.编辑或处理文本.我们在某些特定场景中用起来是非常方便的.它等于是给我们划定了一个范围,让我们可以精准的匹配到我们想要的结果.比如我想判断一个几 ...
- NOIP2021T1报数——黄蓝紫黑的神奇梯度
7A3T 点击查看代码 #include<iostream> #include<cstdio> #include<cmath> #include<algori ...
- Solution -「HDU #6566」The Hanged Man
\(\mathcal{Description}\) Link. 给定一棵含 \(n\) 个点的树,每个结点有两个权值 \(a\) 和 \(b\).对于 \(k\in[1,m]\),分别求 \[ ...