## 一、Docker 简介
Docker 是一个开源的容器引擎,它有助于更快地交付应用。Docker 可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker , 可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。
* Docker 的官方网址链接:[https://www.docker.com](https://www.docker.com/)
* Docker 的 GitHub : http://github.com/docker/docker
<br>
## 二、Docker 的架构
Docker 架构包含的主要组件:
* `Docker daemon ( Docker 守护进程 )`
Docker daemon 是一个运行在宿主机 (DOCKER\_HOST) 的后台进程。可通过 Docker 客户端与之通信。
* `Client (Docker 客户端)`
Docker 客户端是 Docker 的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon 通信。
* `Images ( Docker 镜像 )`
Docker 镜像是一个只读模板,它包含创建 Docker 容器说明。它和系统安装光盘有点像 —— 使用系统安装光盘可以安装系统,同理,使用 Docker 镜像可以运行 Docker 镜像中的程序。
* `Container (容器)`
容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API 或 CLI 命令来启动、停止和移动、删除容器。
* `Registry ( 注册 )`
Docker Registry 是一个集中存储与分发镜像的服务。构建完 Docker 镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时,就可借助 Docker Registry 来避免镜像的手动复制。
一个 Docker Registry 可包含多个 Docker 仓库,每个仓库可包含多个镜像标签,每个标签对应一个 Docker 镜像。这跟 Maven 的仓库有点类似,如果把 Docker Registry 比作 Maven 仓库的话,那么 Docker 仓库就可理解为某 jar 包的路径,而镜像标签则可理解为 jar 包的版本号。
Docker Registry 可分为公有 Docker Registry 和私有 Docker Registry 。最常用的 Docker Registry 莫过于官方的 Docker Hub, 这也是默认的 Docker Registry 。Docker Hub 上存放着大量优秀的镜像,可使用 Docker 命令下载并使用。
<br>
## 三、Docker准备
Docker 官方建议将 Docker 运行在 Linux 操作系统上。当然,Docker 也支持运行在其他平台,例如 Windows、MacOS 等。
* 安装参考官方文档:[http://docs.docker.com/engine/installation/](http://docs.docker.com/engine/installation/)
### 系统要求
* Docker 运行在 CentOS 7.X 之上 (不支持内核在 3.8 以下的老版本)
### 通过以下命令查看您的 CentOS 内核
`uname -r`
需要保证Docker安装在 64 位平台
### 移除非官方软件包
Red Hat 操作系统包含了一个旧版本的 Docker 软件包,该旧版本软件包的名称是 “ docker ”,而新版本是 “ docker-engine ”。因此,如已安装该软件包,那么需要执行以下命令移除。
~~~
$ sudo yum remove docker
~~~
Tips:执行该命令只会移除旧版本的 Docker , /var/lib/docker 目录中的内容不会被删除,因此,旧版本 Docker 所创建的镜像、容器、卷等都会保留下来。
### 卸载旧版本
~~~
$ sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
~~~
### 设置 Yum 源
Docker 有多种安装方式,例如 Yum 安装、PRM 包安装、Shell安装等。以下以 Yum 安装方式进行, Docker 分 Docker EE 和 Docker CE 两种版本(EE:企业版,收费的;CE:社区版,不收费)。
1、安装 yum-utils , 这样就能使用 yum-config-manager 工具设置 Yum 源。
~~~
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
~~~
2、执行以下命令,添加 Docker 的 Yum 源。
~~~
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
~~~
3、【可选】启用测试仓库。测试仓库包含在 docker.repo 文件中,但默认情况下禁用的。
如需启用测试仓库,可使用以下命令:
~~~
$ sudo yum-config-manager --enable docker-ce-edge
~~~
~~~
$ sudo yum-config-manager --enable docker-ce-test
~~~
如想要禁用测试仓库,可执行以下命令:
~~~
$ sudo yum-config-manager --disable docker-ce-edge
~~~
<br>
## **四、安装Docker**
1、更新 Yum 包的索引
~~~
$ sudo yum makecache fast
~~~
2、安装最新版本的 Docker
~~~
$ sudo yum install docker-ce
~~~
3、在生产系统中,可能需要安装指定版本的 Docker ,而并不总是安装最新的版本。
执行以下命令,即可列出可用的 Docker 版本
~~~
$ yum list docker-ce --showduplicates | sort -r
~~~
列出 Docker 版本后,可使用以下命令安装指定版本的 Docker 。
~~~
$ sudo yum install
~~~
例如:
~~~
$ sudo yum -y install docker-ce-17.09.0.ce
~~~
4、启动 Docker
~~~
$ sudo systemctl start docker
~~~
5、执行以下命令,验证安装是否正确
~~~
$ sudo docker run hello-world
~~~
6、查看 Docker 版本
~~~
docker version
~~~
<br>
## 五、卸载 Docker
1、卸载 Docker 软件包
~~~
$ sudo yum remove docker-ce
~~~
2、如需删除镜像、容器、卷以及自定义的配置文件,可执行以下命令
~~~
$ sudo rm -rf /var/lib/docker
~~~
<br>
## 六、配置镜像加速器
国内访问 Docker Hub 的速度很不稳定,有时甚至出现连接不上的情况。为 Docker 配置镜像加速器,从而解决这个问题。目前国内很多云服务商都提供了镜像加速的服务。常用的镜像加速器有:
阿里云加速器、DaoCloud加速器等。
以阿里云加速器为例:
1、注册阿里云账号,即可在阿里云控制台([https://cr.console.aliyun.com/#/accelerator](https://cr.console.aliyun.com/#/accelerator))
2、按照提示说明,即可配置镜像加速器。
<br>
## 七、ipv4转向配置
若启动docker的时候报错:`WARNING IPv4 forwarding is disabled. Networking will not work`
解决方案:
~~~
vi /etc/sysctl.conf
~~~
添加配置
~~~
net.ipv4.ip_forward=1
~~~
重启
~~~
systemctl restart network
~~~
查看是否成功
~~~
sysctl net.ipv4.ip_forward
~~~
如果返回为`net.ipv4.ip_forward = 1`则表示成功了
- 第零章 序
- 序言
- 系统架构
- 视频公开课
- 开源版介绍
- 商业版介绍
- 功能对比
- 答疑流程
- 第一章 快速开始
- 升级必看
- 环境要求
- 环境准备
- 基础环境安装
- Docker安装基础服务
- Nacos安装
- Sentinel安装
- 插件安装
- 建数据库
- 工程导入
- 导入Cloud版本
- 导入Nacos配置
- 导入Boot版本
- 工程运行
- 运行Cloud版本
- 运行Boot版本
- 工程测试
- 测试Cloud版本
- 测试Boot版本
- 第二章 技术基础
- Java
- Lambda
- Lambda 受检异常处理
- Stream 简介
- Stream API 一览
- Stream API (上)
- Stream API (下)
- Optional 干掉空指针
- 函数式接口
- 新的日期 API
- Lombok
- SpringMVC
- Swagger
- Mybatis
- Mybatis-Plus
- 开发规范
- 第三章 开发初探
- 新建微服务工程
- 第一个API
- API鉴权
- API响应结果
- Redis缓存
- 第一个CRUD
- 建表
- 建Entity
- 建Service和Mapper
- 新增 API
- 修改 API
- 删除 API
- 查询 API
- 单条数据
- 多条数据
- 分页
- 微服务远程调用
- 声明式服务调用 Feign
- 熔断机制 Hystrix
- 第四章 开发进阶
- 聚合文档
- 鉴权配置
- 跨域处理
- Xss防注入
- 自定义启动器
- Secure安全框架
- Token认证简介
- Token认证配置
- PreAuth注解配置
- Token认证实战
- Token认证加密
- 日志系统
- 原理解析
- 功能调用
- Seata分布式事务
- 简介
- 编译包启动
- 配置nacos对接
- docker启动
- 对接微服务
- 代码生成配置
- 前言
- 数据库建表
- 代码生成
- 前端配置
- 优化效果
- 第五章 功能特性
- SaaS多租户
- 概念
- 数据隔离配置
- 线程环境自定义租户ID
- 多终端令牌认证
- 概念
- 系统升级
- 使用
- 第三方系统登录
- 概念说明
- 对接说明
- 对接准备
- 配置说明
- 操作流程
- 后记
- UReport2报表
- 报表简介
- 对接配置
- 报表后记
- 动态数据权限
- 数据权限简介
- 数据权限开发
- 纯注解配置
- Web全自动配置
- 注解半自动配置
- 数据权限注意点
- 动态接口权限
- 乐观锁配置
- 统一服务登陆配置
- Skywalking追踪监控
- Minio分布式对象存储
- Boot版本对接至Cloud
- 第六章 生产部署
- windows部署
- linux部署
- jar部署
- docker部署
- java环境安装
- mysql安装
- docker安装
- docker-compose安装
- harbor安装
- 部署步骤
- 宝塔部署
- 准备工作
- 安装工作
- 部署准备
- 部署后端
- 部署前端
- 部署域名
- 结束工作
- k8s平台部署
- 第七章 版本控制
- Git远程分支合并
- Git地址更换
- 第八章 学习资料
- 第九章 FAQ
- 第十章 联系我们