docker流行起来,肯定是可以解决一些痛点:
1、复杂的环境搭建
安装一个软件可能有各种依赖关系极为复杂,Docker可以吧环境依赖打包在一起只需要一条命令就可以开箱使用
2、隔离性
每个用户实例之间相互隔离, 互不影响。 比如你的程序A需要使用PHP7.0,程序B需要使用PHP7.2,但是程序A不能使用PHP7.2,在虚拟的时候你只能选择开两台,使用docker就可以在同一台服务器互不影响的情况下顺利运行
3、可配额/可度量
每个用户实例可以按需提供其计算资源,所使用的资源可以被计量。 笔者在运营环境出过一次事故,大致是A应用除了点问题导致CPU吃高,其他程序全部都无法访问,有的docker可以定额分配资源限制不重要的程序不会影响到重要的程序
4、移动性
用户的实例可以很方便地复制、移动和重建以及回滚。
5、基本不增加额外的性能消耗 Docker直接移植于Linux内核之上,通过运行Linux进程将底层设备虚拟隔离,这样系统性能的损耗也要比虚拟机低的多,几乎可以忽略。同时,Docker应用容器的启停非常高效,可以支持大规模的分布系统的水平扩展,真正给企业开发带来福音。
6、DevOps持续迭代交付 Docker技术将应用以集装箱的方式打包交付,使应用在不同的团队中共享,通过镜像的方式应用可以部署于任何环境中。这样避免了各团队之间的协作问题的出现,成为企业实现DevOps目标的重要工具。以容器方式交付的Docker技术支持不断地开发迭代,大大提升了产品开发和交付速度。
本文操作都是在centos7 64位系统之上
一、首先进入官网文档,安装:
官网两种安装方式
1、yum安装
2、rpm下载到本地安装
二、配置用户组(非root用户登录设置)
三、内置镜像
1、官网镜像:
https://hub.docker.com/
然而由于国情,根本下载不了 - -!
2、国内镜像
https://dev.aliyun.com/search.html
登录阿里云镜像中心,进入控制台
执行以下命令
sudo mkdir -p /etc/docker #创建文件夹docker
sudo tee /etc/docker/daemon.json <<-'EOF' #利用tee命令把下面的配置写入daemon.js
{
"registry-mirrors": ["https://ddbrfjm6.mirror.aliyuncs.com"] # 这里要改成自己的地址
}
EOF
sudo systemctl daemon-reload # 重新加载配置文件,扫描新的或有变动的单元
sudo systemctl restart docker # 重启docker