编译一个环境为什么还需要将它存储起来?
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:[镜像版本号]复制代码