docker流程

Docker概述

docker出现

开发代码 --- 上线代码

问题:

  • 开发环境可以运行,部署到线上环境出现他各种错误
  • 版本更新,服务不能用了

环境配置十分麻烦,每一台机器都要部署环境(集群redis,ES, Hadoop)

发布一个项目j ar + (Redis Mysql jdk ES), 项目能不能带上环境安装打包

之前在服务器配置一个应用的环境 Redis,MYSQL, JDK ES Hadoop,配置麻烦, 不能跨平台

windows 最后发布到linux

传统: 开发提供jar包,其他的运维做

现在:开发打包部署上线,一套流程做完


Docker给以上的问题提出了解决方案

开发:Java --- jar + 环境 --- 打包成docker镜像. --- 发送到docker仓库

运维:从镜像仓库下载镜像并运维, 直接用


镜像仓库理解为应用商店

java - apk -发布到应用商店

安卓客户端-- 从应用商店下载 - 本地运行 -- 直接使用

JRE --- 多个应用 (比如说都是8088端口,产生了端口冲突)

---》使用docker将项目代码以及依赖的的环境打包成docker镜像然后在服务器上运行


docker历史

2013 docker 开源

2014.4.9。docker 1.0 发布


虚拟机

在windows中装一个vmware, 通过这个软件我们可以虚拟出来一台或多台电脑(硬件+软件)

虚拟机属于虚拟化技术, docker是容器技术,也是虚拟化技术的一种

vm, linux centos原生镜像。 隔离,需要开启多个虚拟机, 几个G,启动速度分钟级
docker, 隔离, 镜像(最核心的环境4m+jdk+mysql)小巧,几M,启动速度秒级

docker基于Go语言开发,2013年开源项目

https://www.docker.com/

https://docs.docker.com/

https://hub.docker.com/


docker能干嘛

虚拟机技术缺点

资源占用多

冗余步骤多

启动慢


容器化技术不是模拟的完整的一个系统

比较docker和虚拟机技术的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机的内核,容器内是没有内核的,也没有虚拟硬件,所以轻便了
  • 每个容器是相互隔离,每个容器内都有一个属于自己的文件系统,互不影响

​ DevOps(开发,运维)

应用快速的交付和部署

传统:一堆帮助文档,安装程序

Docker: 打包发布测试,一键运行

更便捷的升级和扩容

使用了docker以后, 升级只需要更新镜像

Springboot 1.5 Redis 5 tomcat8

项目打包一个镜像,扩展服务器A. 服务器B

更简单的系统运维

容器化后,开发,测试环境高度一致

更高效的计算资源利用

Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能可以被压榨到极致


Docker安装

docker的名词解释

镜像(image):

docker镜像就好比是一个模版,可以通过这个模版来创建容器服务, tomcat镜像》run=>tomcat容器(提供服务器),

通过这个镜像可恶意创建多个容器(最终服务运行或者项目运行就是在容器中)

容器(container):

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建

启动,停止,删除,基本命令

目前就可以把这个容器理解就是一个简易的linux系统

仓库(repository):

仓库就是存放镜像的地方

仓库分为公有仓库和私有仓库

Docker Hub(默认是国外的)

阿里云。。都有容器服务器(配置镜像加速!)


环境准备

# uname -r
3.10.0-1160.11.1.el7.x86_64
# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

文档:https://docs.docker.com/engine/install/centos/

第一步:卸载docker

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

第二步:需要的安装包

yum install -y yum-utils

第三步:设置镜像的仓库

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
posted @ 2021-04-15 14:16  cjw1219  阅读(78)  评论(0编辑  收藏  举报