Docker系列(一)到底什么是 Docker?

  一个web应用从开发到上线,需要对运行环境,操作系统、再到一些基本的配置,都需要有一个统一的管理。这是开发和运维之间经常会出现的问题,就像有的时候在本地上测试的没有问题,但是一放在服务器上就会出现各种各样的问题。而且同一个应用在不同的地方部署,需要部署很多次,非常的麻烦,这对运维人员是一项非常大的挑战。
  基于这些问题,我们经常会想可不可以将环境和其他配置一起打个包,之后再统一部署呢。Docker就这样诞生了,Docker为我们提供了一个统一的解决方案。

一、Docker是什么?

  一次封装,处处运行。如果说之前开发和运维之间,是开发向运维交代码,之后就是运维去进行部署和环境的搭配,现在有了Docker就是开发向运维交一个镜像,其中包含了运行所需要的的环境。

docker compose由开发人员还是运维人员负责 docker是开发还是运维_运维

二、Docker三要素

** (1)镜像(Image)**

  镜像可以用来创建容器,一个镜像可以创建多个容器。可以类比到Java面向对象的思想中,Docker类比于Java、镜像类比于Java类、容器就可以类比到每一个的实例。

Java

Docker

镜像

Java类

容器

实例

(2)容器(Container)

docker compose由开发人员还是运维人员负责 docker是开发还是运维_Java_02

  一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。

  容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
  容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。
  容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

Docker的官方图标是一个鲸鱼的背上有一些集装箱,如果把Docker当做鲸鱼的话,那么容器就可以看做是鲸鱼背上一个个的集装箱,里面封装着各种各样的东西,可以是一个Web应用、甚至可以是一个系统环境。

(3)仓库(Repository)

  仓库就是在云上存放镜像的地方,当我们有需要的时候就可以把镜像放在我们自己的鲸鱼背上。
  最大的仓库就是Docker Hub(https://hub.docker.com/)。
  国内的比较著名的仓库有阿里云和网易云的,之后将介绍怎么配置Docker的镜像。