编译一个环境为什么还需要将它存储起来?

1、保持一致:
          一个项目的本地环境、测试环境、预发布环境、线上环境,如果你一个个去编译、搭建,不仅仅耗时,期间还有可能出现,环境不一致导致的问题!例如:同样的代码本地环境没问题跑到测试环境就炸了,有时就是环境不一致导致的。

2、节约时间:
          编译安装一个例如基础版的LNMP环境,熟练的话都得接近两三个小时,不熟练的话一天都要;而使用docker,在第一次安装完成后,以后部署相同的环境,你只需要最快1分钟的时间


不废话了,开始搞起

1)在个人服务器上安装docker

//更新源
yum update

//安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

//设置源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

//可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r

//自动安装最新稳定版
sudo yum install docker-ce

//启动
sudo systemctl start docker

//加入开机启动
sudo systemctl enable docker

//验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
复制代码


2)在阿里云上绑定github账户

阿里云镜像仓库地址:promotion.aliyun.com/ntms/act/ku…

(在搜索框搜索centos自动跳到镜像仓库地址,自己根据阿里云的提示进行创建)

根据提示绑定好自己的github


3)获取centos7镜像

//拉取镜像系统,这里使用官网的镜像仓库:
docker pull centos

//运行并进入镜像系统
docker run -it centos /bin/bash

//我们进入的镜像系统中新增一个txt文件
//在这一步,你可以在这个镜像系统中配置好自己的所有需要的环境,例如:LNMP
mkdir /home/test
touch test.txt
exit

//将当前的环境保存为一个新的容器
docker commit -a "zhao" -m "centosTest" 05d85063be6a centostest

//查看当前的所有镜像
docker images

//登录阿里云,-u后面填写的是阿里云登录时的用户名
//registry.cn-hangzhou.aliyuncs.com直接复制就可以了
docker login -u=13250333601 registry.cn-hangzhou.aliyuncs.com

//需要输入密码复制代码
//拉取镜像系统,这里使用官网的镜像仓库:
docker pull centos

//运行并进入镜像系统
docker run -it centos /bin/bash

//我们进入的镜像系统中新增一个txt文件
//在这一步,你可以在这个镜像系统中配置好自己的所有需要的环境,例如:LNMP
mkdir /home/test
touch test.txt
exit

//将当前的环境保存为一个新的容器
docker commit -a "zhao" -m "centosTest" 05d85063be6a centostest

//查看当前的所有镜像
docker images

//登录阿里云,-u后面填写的是阿里云登录时的用户名
//registry.cn-hangzhou.aliyuncs.com直接复制就可以了
docker login -u=13250333601 registry.cn-hangzhou.aliyuncs.com

//需要输入密码复制代码


在推送前,你需要去到阿里云获取上传地址,如下图




4)进行上传,上传需要进行两步操作:
一步是编译取名,一步是上传操作,阿里云上有相关的详细操作介绍



下载镜像系统

这一步相当的简单,一条命令就完事,也就是说,以后你需要在其他地方部署你的环境,也只是一条命令的事,大概一分钟内


sudo docker pull registry.cn-hongkong.aliyuncs.com/zzj_docker/test:[镜像版本号]复制代码