史上最详细的Docker安装手册
概述:
这个安装手册我已经使用了将近2年的时间,一直在进行完善(可以用于生产级别)。使用了Centos 7系统。
一、Docker简单介绍
Docker是一个容器,使用的是Linux现有的技术,准确来说是基于Linux内核虚拟化技术发展而来,例如:网络模型之一网桥。底层核心技术是Namespace和cgroups。
Docker版本有企业版(收费)和社区版,我们一般使用的是社区版。社区版有三个发布版本,下面是对于三个发布版本的描述:

二、Docker的卸载和升级
注:如需要安装企业版的,请参考:https://docs.docker.com/install/linux/docker-ee/centos/
2.1 卸载已安装的docker(如未安装,可跳过)
##. 列出安装过的包
# yum list installed | grep docker
##. 根据安装过的包进行卸载
# yum -y remove docker-ce-cli.x86_64
# yum -y remove docker-ce.x86_64
# yum -y remove containerd.io
2.2 更新docker(更新至最新版本)
# yum -y update docker
三、Docker的安装
3.1 配置docker源(如已安装过docker,则不需要进行此步骤,该步骤和第3步可以任意选择一个执行)
## 如果没有安装wget,可以使用下面的命令进行安装
# yum install -y wget # wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
3.2 安装 docker 环境
# yum install -y yum-utils device-mapper-persistent-data lvm2
3.3 设置从stable仓库获取docker
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.4 安装docker(注:不建议使用这一条命令,建议使用下一条命令,因为这会获取最新版本的docker)
# curl -fsSL https://get.docker.com/ | sh
3.5 安装docker
# yum install -y docker-ce docker-ce-cli containerd.io ## 说明:
## 获取哪些版本的docker可以使用
## yum list docker-ce --showduplicates | sort -r
## 获取指定版本的docker
## yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
## 例如:yum install docker-ce-18.09. docker-ce-cli-18.09. containerd.io -y
3.6 启动Docker和设为开机启动配置镜像加速
# systemctl start docker && systemctl enable docker
3.7 配置镜像加速
默认docker从DockerHUB上拉取镜像,由于国内网络原因下载镜像速度会变慢,所以可以配置国内镜像加速地址https://registry.docker-cn.com,当有多个镜像加速地址时候可在列表中以逗号分割。
执行以下命令:
# mkdir -p /etc/docker
## 配置阿里云加速器(这里使用的是我自己的,也可以自行在阿里云申请)
# tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://usydjf4t.mirror.aliyuncs.com", "https://registry.docker-cn.com"]
}
EOF ## 重新启动守护进程
# systemctl daemon-reload
## 重启docker
# systemctl restart docker
3.8 测试功能
## 查看docker版本
# docker version ## 下载hello-world镜像
# docker run hello-world

查看docker状态
# service docker status

附录
参考资料:
1. 官网安装文档
https://docs.docker.com/install/linux/docker-ce/centos/
https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/
2. Virtualbox Centos 7 安装
https://www.ostechnix.com/install-docker-centos/
3. 配置阿里云加速器
https://blog.csdn.net/xlemonok/article/details/71403534
史上最详细的Docker安装手册的更多相关文章
- 【转】史上最详细的Composer安装tp5教程
http://www.thinkphp.cn/topic/52362.html Composer安装tp5教程1.下载composer先介绍几个网站Composer官网https://getcompo ...
- 史上最详细的CocoaPods安装教程
虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用. 前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正 ...
- 史上最详细SharePoint 2013安装步骤图解新手教程
来源:// http://www.itexamprep.com/cn/microsoft/soft/sharepoint2013/2013/0408/2866.html 文章就是SharePoint2 ...
- 黄聪:史上最详细的kali安装教程没有之一
首先在vm里面新建虚拟机,直接选择典型,然后下一步. 1 2 然后到了这一步,选择中间的安装程序光盘镜像文件,然后去文件里面找你自己下载的镜像,这时候可能系统会出现无法检测此光盘镜像中的操作系 ...
- 史上最详细的codeblocks安装教程!!!
codeblocks下载地址:https://www.cnblogs.com/yinbiao/p/8489748.html 下面是codeblocks具体的安装教程:
- 史上最详细的VMware 安装CentOS 7
1.点击"创建新的虚拟机": 
语法 ECMAScript的语法大量借鉴了C及其他类C语言(如Java和Perl)的语法.因此,熟悉这些语言的开发人员在接受ECMSAScript更加宽松的语法时,一定会有一种轻松自在的感觉. 区分大 ...
- Azure Devops/TFS测试管理(下)
紧接着 上篇 经过上篇折腾,我们已经有了: ①手工测试的流程规范 ②测试用例的管理 对于开发出身的我,我觉得一个项目上线流程应该主要瓶颈只能是开发本身,因为我认为最复杂过程应该就是开发,而肯定不能是测 ...
- 【译】使用FormData对象
系列文章说明 原文 FormData对象能让你生成一系列用于XMLHttpRequest发送的键值对.它主要的目的在于发送表单数据,但也能独立用于传输有键形式的数据.其传输的数据格式和表单使用subm ...
- 全栈前端入门必看 koa2+mysql+vue+vant 构建简单版移动端博客
koa2+mysql+vue+vant 构建简单版移动端博客 具体内容展示 开始正文 github地址 <br/> 觉得对你有帮助的话,可以star一下^_^必须安装:<br/> ...
- iview 和 Elemet UI 源码比较
(近期给自己立了个小flag,读源码,每周至少读1篇源码) 下面来谈谈iview 和 Elemet UI 这两个基于Vue 的UI 框架源码的基本结构以及区别. 一.文件结构开发主要放在根文件夹下的s ...
- 前端面试题-<!DOCTYPE>
现在的各种前端开发工具都足够强大,支持插入模板代码,也就导致我们往往会忽略已经自动生成的代码,而代码的第一行 DOCTYPE 声明,就是最容易忽略的部分. 一.DOCTYPE DOCTYPE 是 do ...
- nodejs通过响应回写的方式渲染页面资源
我们一般通过node框架提供的api操作页面渲染,如何利用原始回写的方式来实现同样的功能呢下面是通过node 提供的异步地读取一个文件的全部内容api readFile进行操作,代码如下: html ...
- Idea - 常用基础配置
前言 IntelliJ IDEA是我们开发常用的一大神器,深得众程序猿青睐,但是在使用过程中,有一些默认设置我们使用起来并不是很友好...这里就记录一些我使用的配置. 1.多行显示同时打开的多个文件 ...
- django 从零开始 12 快速集合queryset对象
使用序列化将查询到的quweyset对象进行一个格式转换 还没看文档理解 待写 from django.core.serializers import serializers 导入该 ...
- Python自定义模块
自定义模块 自定义模块(也就是私人订制),我们要自定义模块,首先就要知道什么是模块 一个函数封装一个功能,比如现在有一个软件,不可能将所有程序都写入一个文件,所以咱们应该分文件,组织结构要好,代码不冗 ...