最终目标 :
-
Docker 是什么
-
如何使用 Docker
-
制作 Java镜像
-
使用 Dockerfile构建 Java镜像
-
使用 Docker Registry 管理镜像
-
Spring Boot 与 Docker 集成
-
Jenkins+Docker+Git实现自动化打包
首先了解下Docker 是什么,有什么作用
Docker 官网 : http//www.docker.com/
Docker 源码地址: http//github.com/docker/docker
Docker 是基于 Go语言开发,性能非常优秀.
简单来说就是将服务以及运行环境加以封装,确保封装后的产物作为交付物,这个交付物可以随时构建,装载,运行.
Docker核心概念(什么是Docker引擎?什么是Docker容器?)
类似我们曾经使用的光盘能在上面刻录数据,然后只需将光盘放入光驱中就能读取数据,同样我们只需获取Docker 镜像就能将其载入到Docker 引擎中并运行镜像.首先我们需要将数据打包到镜像中才能将Docker镜像交给其他人使用
可随时运行Docker镜像,启动一个Docker容器,该容器将运行镜像中封装的程序
官方提供了一个Docker Hub的镜像注册中心,用于存放公开和私有的Docker 镜像仓库. 我们可随时通过Docker Hub拉取Docker镜像,也可以自由将自己创建的Docker镜像推送到Docker Hub上
Docker Hub地址: https://hub.docker.com/ Docker官方已将注册中心核心组件Docker Registry进行开源,可搭建内网镜像中心
- Docker 引擎(Docker Engine)
可以理解为一个运行在服务器上的后台进程,本质上就是一个服务,可通过docker命令客户端发送命令与Docker引擎通信. - Docker 客户端(Docker Client)
Docker 客户端有两种,一种是Docker 命令客户端,只要打开命令终端窗口输入Docker 命令就能操作Docker 引擎, 另一种是REST API客户端,一般会在应用程序中通过Api与Docker引擎发送交互 - Docker 镜像(Docker Images)
- Docker 容器(Docker Containers)
- Docker 镜像注册中心(Docker Registry)
虚拟机与Docker对比
Docker 本质上为我们提供了一个"沙箱(Sandbox)"环境,它能将应用程序进行封装,并提供与虚拟机相似的隔离性,这种隔离性相当轻量.虚拟机软件需要模拟硬件与网络资源,会占用大量的系统开销(一台普通服务器最多启动几十个虚拟机).使用Docker 来实现虚拟化技术只需先在宿主机上安装一个Docker引擎,就可下载所需的docker镜像,Docker引擎完全利用宿主机的硬件与网络资源,占用的系统开销较少(一台普通服务器可启动上千个Docker容器)
Docker 的特点
Docker 是通过底层上封装了 Linux 容器技术来实现的并没有创建任何新技术,但Docker具有 快速运行(启动快只需几秒),节省资源(系统开销少),便于交互(包含服务与运行环境),容易管理的特点
Docker 系统架构
- Client : 表示Docker客户端,可通过 docker build 命令创建 Docker镜像;docker pull 拉取镜像;Docker run运行而启动镜像
- DOCKER_HOST: 运行Docker引擎的宿主机,其中包括 Docker Daemon 后台进程,可通过该进程来创建Docker 镜像,并在Docker镜像上启动Docker 容器
- Registry: 表示Docker 官方镜像注册中心,其中包含了大量的Docker 镜像仓库,可通过引擎拉取所需的镜像到宿主机上
Docker 安装
Docker官方建议我们将Docker 引擎运行在Linux 操作系统上.当然也可以运行在 Mac OSX 和windows 上,生产环境不推荐使用
这里介绍在 CentOS 中安装 Docker,Mac OSX 和windows环境使用较少这里不介绍,个人学习或研究请安装Docker for Mac
安装条件:
- CPU 必须为 64 位
- Linux 内核必须在3.10版本以上
- 可使用uname -a命令获取以上版本信息
安装步骤:
-
更新yum包,为了安装最新版本的Docker我们需要使用 yum update 命令更新yum 包
-
添加 yum的Docker包仓库
-
安装 Docker引擎 使用命令 yum install docker-engine
-
启动 Docker 引擎 , Docker引擎安装完毕后使用命令 service docker start 启动Docker引擎服务
-
查看Docker 版本好 使用 docker version 命令
两种安装方式 yum安装 1.更新yum包 $ sudo yum update 2.添加yum仓库 $ sudo tee /etc/yum.repos.d/docker.repo <<-‘EOF’ [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF 3.安装docker包 $ sudo yum install docker-engine 4.运行docker后台进程 $ sudo service docker start 5.检测docker是否正确安装 $ sudo docker run hello-world 脚本安装 1.更新yum包 $ sudo yum update 2.运行docker安装脚本 $ curl -fsSL https://get.docker.com/ | sh 3.运行docker后台进程 $ sudo service docker start 4.检测docker是否正确安装 $ sudo docker run hello-world
推荐使用脚本安装方式 ,文章都是个人阅读资料后总结有误之处请大家斧正,后面会持续更新敬请关注!