为什么学习Docker?

119 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

1、为什么学习Docker?

Docker学习

  • Docker概述

  • Docker安装

  • Docker命令

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

  • 容器数据卷!

  • DockerFile

  • Docker网络原理

  • IDEA整合Docker

  • Docker Compose

  • Docker Swarm

  • CI\CD Jenkins

2、Docker概述

Docker为什么会出现?

一款产品:开发--上线,两套环境 应用环境 应用配置

开发 -- 运维 问题:我在我的电脑上可以运行!版本更新,导致服务不可用

开发即运维

环境配置十分麻烦,每一个机器都要都要配环境

隔离:Docker核心思想

Docker通过隔离机制,可以将服务器利用到机制

Docker的历史

2010年,几个搞IT的年轻人,在美国成立公司dotCloud

做一些pass云计算服务!LXC有关的容器技术

他们将自己的容器化技术命名为Docker

Docker刚刚诞生的时候,没有引起行业的注意!难以生存

开源

开放源代码

2013年,Docker开源

Docker越来越多的人发现优点!

2014年4月9日,Docker1.0发布

Docker相对于虚拟机十分轻巧

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

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

docker:隔离,镜像(最核心的环境 4m ) 运行镜像即可 秒级启动

Docker

Docker是基于Go语言开发的

官网:www.docker.com/

文档地址:docs.docker.com/ Docker的文档很详细

仓库地址:hub.docker.com

Docker能干嘛

之前的虚拟技术

image-20210814100008904.png

缺点:

  1. 资源占用多
  2. 冗余步骤多
  3. 启动慢

容器化技术

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

image-20210814100407328.png

Docker 和 虚拟机技术的不同:

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

DevOps(开发、运维)

应用更快的交付和部署

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

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

更便捷的升级和扩缩容

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

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

更简单的系统运维

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

更高效的计算资源利用

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