Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,逐渐的也将成为各个岗位的必要技术栈要求
了解Docker
Docker简单介绍
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
Docker优点
- 快速,一致地交付应用程序
- 响应式部署和扩展
- 在同一硬件上运行更多工作负载
Docker的作用简单来说就是docker中的容器可以看成装货物的集装箱,不同应用可以看做不同货物。没有集装箱的情况下需要考虑如何规整的存放不同货物,有了集装箱就可以将不同货物统一放进去,以相同的方式存放货物,这样就实现了标准化。
Docker采用了集装箱原理,我们将程序放入到容器中,实现“一次封装,到处运行”,只要开发环境能跑,在其他任何流行的机器上都能运行。并且将程序丢入到容器中,很好的实现了程序与程序之间的隔离,避免了类似Java开发的程序和.net开发的程序安装在一个服务器上需要很多调试,有时还会产生冲突的情况。
Docker 架构
Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
更换yum仓库(可选)
直接使用原yum仓库地址可能由于是国外原因导致从仓库下载资源失败,所以将安装源替换成阿里云的仓库地址
以下操作需要 root 权限
可以切换到root用户 su
或者在所有vim
操作前加入sudo
进入 repo 目录
cd /etc/yum.repos.d
备份原文件
cp CentOS-Base.repo CentOS-Base.repo.bak
编辑repo文件