zoukankan      html  css  js  c++  java
  • 1.docker概述

    0x01. docker学习路线

    • Docker概述

    • Docker安装

    • Docker命令

      • 镜像命令
      • 容器命令
      • 操作命令
      • ........
    • Docker镜像

    • 容器数据卷

    • DockerFile

    • Docker网络原理

    • IDEA整合Docker

    • Docker Compose

    • Docker Swarm

    • CI\CD Jenkins

    0x02. 什么是docker

    官网 : https://www.docker.com/

    image-20210405083852969

    Docker 是一个(基于go语言)开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,也就是说互不影响

    0x03. 为什么要有docker

    1. 产生的问题

    假如说一款产品从开发到上线, 一般情况下都是两套环境。一个开发环境,一个生产环境。往往要将开发的应用部署到生产环境上的时候,如果环境复杂就会出现一个尴尬的事情,就是我在我的电脑上可以运行,运维人员部署到机房就不行。一般环境配置是一件相当麻烦的事情,费事又费力

    发布一个项目 ( jar ) + ( redis mysql jdk es ) , 项目能不能都带上环境安装打包?

    而且之前应用的环境还不能跨平台, 开发往往是在windows下开发, 但是部署的服务器都是LCX操作系统, 所以不支持跨平台

    传统: jar + 运维

    现在: 开发打包部署上线, 一套流程一个人就能干

    2. 解决方案

    Docker给以上问题提供了解决方案!

    java --- apk --- 发布(应用商店) --- 张三使用apk --- 安装即可用

    java --- jar(环境) --- 打包项目带上环境 ( 镜像/容器 ) --- (Docker仓库: 商店) --- 下载镜像 --- 直接运行

    0x04. Docker历史

    2010年, 几个搞IT的小伙子, 在美国成立了一家公司dotCloud, 他们主要做一些pass的云计算服务!linux有关的容器技术, 然后他们将自己的技术( 容器化技术 ) 命名为Docker , 但是Docker刚刚诞生的时候 , 实际上并不是一出就火, 也没有引起行业的关注, 但是这个家公司还要经营下去。怎么办呢?

    2013年, Docker的老板将Docker开源, 越来越多的人注意到Docker, 觉得这个玩意挺好用的, 然后就火了

    开源以后, Docker几乎一个月更新一次, 说明这个社区十分的活跃, 2014年4月9日 , Docker1.0发布

    Docker为什么这么火?十分的轻巧!

    在容器技术出来之前,我们都是使用虚拟机技术!

    虚拟机∶在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑!笨重!虚拟机也是属于

    虚拟化技术,Docker容器技术,也是一种虚拟化技术!

    vm : linux centos原生镜像(一个电脑!) 隔离,需要开启多个虚拟机!   十几个G   几分钟
    
    docker : 隔离,镜像(最核心的环境4m + jdk + mysq1)十分的小巧,运行镜像就可以了! 小巧!  几个M KB 
                                                                                                                                                    秒级启动!
    

    0x05. Docker的使用

    文档官网 : https://docs.docker.com/ 超级详细的

    image-20210405084105966

    下载安装页面 : https://docs.docker.com/get-docker/

    image-20210405084049708

    Docker的仓库地址: https://hub.docker.com/ 可以下载,发布docker镜像

    0x06. docker能干什么

    image-20210405081221216

    Docker的思想实际上就来源于logo中的集装箱 , 可以在一条船上累计多个集装箱, 每个之间互不影响

    映射到我们计算机上就是使用Docker可以安装多个项目+环境, 每个之间相互不影响, 可以同时存在

    Docker的核心思想 : 隔离

    之前的虚拟化技术

    image-20210405084659130

    虚拟技术的缺点:

    • 资源占用多
    • 冗余步骤多
    • 启动很慢

    容器化技术

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

    image-20210405085007052

    Docker和虚拟机的不同

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

    DevOps ( 开发 运维 )

    应用更快速的交付和部署

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

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

    更便捷的升级和扩缩容

    使用了Docker之后,我们部署应用就和搭积木一样!

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

    更简单的系统运维

    在容器化之后,我们的开发,测试环境都是高度一致的。

    更高效的计算资源利用

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

  • 相关阅读:
    2. linux下如何上传和下载文件
    (六)使用Docker镜像(下)
    (五)使用Docker镜像(上)
    1. chmod命令
    阿里P7/P8学习路线图——技术封神之路
    问题二:pip install python-igraph 报错,C core of igraph 没有安装。
    问题一:【Hive】explain command throw ClassCastException in 2.3.4
    (四)docker创建私人仓库
    P5024 保卫王国
    jzoj5980. 【WC2019模拟12.27】字符串游戏
  • 原文地址:https://www.cnblogs.com/xcymn/p/15712421.html
Copyright © 2011-2022 走看看