初始Docker
我们面临的问题
软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引擎,还必须有各种依赖,可能还要配置环境变量。如果某些老旧的模块与当前环境不兼容,那就麻烦了。开发者常常会说:“它在我的机器可以跑了”(It works on my machine),言下之意就是,其他机器很可能跑不了。环境配置如此麻烦,换一台机器,就要重来一次,旷日费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。
我们写的代码也会接触到好几个环境:开发环境、测试环境以及生产环境:
**
由于环境的不同可能我们写的代码明明可以在我们本地运行,但是当我们发布到生产环境中的时候它就不可以运行了
所以我们需要把我们写的代码和环境一起迁移过去,我们可以使用一个容器把代码和原始环境都给复制过去
Docker是什么
一句话介绍
Docker是一种容器技术,解决软件跨环境迁移的问题
基本信息
1.Docker 是一个开源的应用容器引擎
2.诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
3.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到
4.任何流行的 Linux 机器上。
5.容器是完全使用沙箱机制,相互隔离 容器性能开销极低。(比如一个容器中装着Tomcat另一个容器中装着redis,如果redis出现了故障它不会影响另一个容器中的Tomcat,二者是隔离的,不会互相影响)
就像下面鲸鱼头上的一个个集装箱一样,相互之间是隔离的
6.Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
Docker架构
架构图
镜像(Image):
Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):
仓库可看成一个代码控制中心,用来保存镜像。
安装Docker
安装步骤
1、yum 包更新到最新
yum update
2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
5、 查看docker版本,验证是否验证成功
docker -v