docker 实战-项目部署

前面学习了 docker 的命令和实际的用法,现在来实战一下。编排一个服务,也就是项目部署。

目前我们在一个闭源环境下工作,介绍一些工作流程和部署项目的方法。

该工作流程比较特殊

所谓闭源环境就是

  • 没有网络,客户机没有链接外网。
  • 不能使用U盘连接客户机,因为那是涉密机器。
  • 我们自己的电脑没有限制,可以连接外网,我们连接的自己的热点。

于是,我们所做的修改需要做成镜像、刻成光盘,然后拷贝到客户机,上传到服务器,然后部署,部署完成后,最后测试修改内容是否符合预期。

项目部署

本机操作

1. 发布镜像

  • 代码编写完成,先 npm run build 编译成功,确保代码能通过编译检测
  • 保证登录了 docker,然后运行 sh 脚本,一般位于 docker 目录下,进而发布镜像
  • 如果 sh 脚本中没有 docker push 命令,则需要另外运行该命令,将其发布到 docker hub

2. 导出镜像

  • 如果是导出别人的镜像,则需要先拉取镜像 docker pull imageName
  • 导出镜像 docker save url/<imageName>:<tagName> > <imageName>:<tagName>

这样就在当前目录导出了该镜像

3. 刻盘

将上面的镜像文件拷贝到光盘中,刻录,等待刻录完成。

客户电脑操作

4. 将镜像上传到服务器

  1. 在客户机上新建目录存放光盘中的镜像文件,新建的文件夹最好包含日期和项目名,如 20191105_biaozu,这么做的目的是备份镜像文件。同时也为下一步将文件拷贝到服务器作准备。
  2. 将 20191105_biaozu 中的镜像文件拷贝到服务器目录 /../images/<projectName>

将光盘中的文件拷贝到客户硬盘,然后再将客户硬盘里的文件拷贝到服务器所花费的时间要少于单独从光盘拷贝文件到服务器。

服务器操作

5. 导入镜像

  1. 进入到拷贝镜像的服务器目录,为了好说明,称为镜像目录。实际上镜像可以放到任何地方,只要在保证在服务器上了,就能保证是正确的。如: data/datagrand/images/bizozu_images
  2. 命令 ll 查看该目录下是否有刚导入的镜像文件,同时确认镜像名 <imageName>和标签 <tagName>
  3. 将拷贝到服务器的镜像导入,在包含镜像的目录下执行命令 docker load -i <imageName>:<tagName>,这个命令是 save 反向操作。在本地将我们本地仓库里面的镜像保存(导出)到我们指定的目录。在服务器上,将镜像导入到指定的目录。

导入镜像后可以通过命令docker images|grep <imageName>查看指定镜像的信息,确保镜像已经导入成功

6. 更改镜像名

  1. 进入到部署目录,如:data/datagrand/images/bizozu_deploy
  2. 更改 docker-compose.yml,将里面的 image 属性(所有有改动的镜像)改成导入的镜像名。

7. 删除容器、镜像

使用命令 docker-compose down 删除容器/镜像

8. 启动容器、镜像

使用命令 docker-compose up 启动容器/镜像

删除容器然后启动容器可以使用 docker-compose restart 重启,一步完成。

可用命令
docker images|grep <imageName> 查看指定容器的信息
ll 列出所有的文件和目录,包含文件最后修改时间、文件大小等信息,并且每个每一项换行显示

原文地址:https://www.cnblogs.com/xinjie-just/p/11815373.html

时间: 2024-10-09 23:09:09

docker 实战-项目部署的相关文章

Ubuntu中安装jenkins+docker,实现项目部署

本人对于linux系统是个小白,恰逢公司新框架需要docker+jenkins部署项目,所以通过同事口述+一顿乱查,终于实现在虚拟机上搭建的ubuntu系统中 实现jenkins +docker 自动部署拉取项目. 赶紧做个记录! 准备条件: 1.虚拟机内安装ubuntu随后再做记录,虽说同事已经演示过,但是自己还是得记录下. 2.jenkins 需要环境:由于本人直接将jenkins安装于宿主机中(还可以将jenkins安装于docker中---这个随后再研究,一步一步来),所以需要JDK+T

云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)

2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功  能还是相当复杂得,并且维护复杂.将特殊性封装到镜像中实现几乎一致得部署方法,它就是“Docker”,以容器为技术核心,实现了应用的标准化.企业可  以快速生成研发.测试环境,并且可以做到快速部署.实现了从产品研发环境到部署环境的一致化.Docker让研发更加专注于代码的编写,并且以“镜像”作  为交付.极大的缩短了产品的交付周期和实施周期. 课

.NET Core实战项目之CMS 第十七章 CMS网站系统的部署

原文:.NET Core实战项目之CMS 第十七章 CMS网站系统的部署 目前我们的.NET Core实战项目之CMS系列教程基本走到尾声了,通过这一系列的学习你应该能够轻松应对.NET Core的日常开发了!当然这个CMS系统的一些逻辑处理还需要优化,如没有引入日志组件以及缓存功能,权限目前只支持控制到菜单,却没有控制到具体的功能(其实这块只是苦于样式不会处理,不然的话也会把功能加上),不过话又说回来,这些都是次要的,后期有时间慢慢补上吧,因为我开这个系列的初衷也是对大家入门.NET Core

04. SpringCloud实战项目-安装Docker

SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础. PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目 采用流行的技术,如 SpringBoot.MyBatis.Redis. MySql. Mon

.netcore项目部署到linux的docker里后,速度异常的慢

.netcore项目部署到linux的docker里后,速度异常的慢,部署在iis下速度非常快. 特别是 接口里再调用其他接口,那速度绝对是蜗牛爬行的速度. 经过几个月的折腾,终于知道是什么问题了: 或者是报这个错误:关于Linux报Resource temporarily unavailable问题解决记录 新建用户Linux系统会限制用户的最大进程数,新用户的进程数限制一般都是在1024或者2048. https://blog.csdn.net/qq_35963057/article/det

.net core 项目+jenkins+git+docker实现自动化部署

一.准备环境 1.1 运行环境Linxu系统 CentOS7.5[腾讯云] 1.2 安装Docker https://www.cnblogs.com/bob-zb/p/12401407.html 1.3 在Docker中安装jenkins https://www.cnblogs.com/bob-zb/p/12402368.html 1.4 准备git仓库,本人使用的是码云 二.创建.net core 项目 创建成功后会自动生成Dockerfile 文件,未对Dockerfile 做任何修改,然后

Docker Compose 项目打包部署

Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知使用 Docker Compose 可以轻松.高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 Docker 和 Compose兼容性看下图:          

22.前后端项目部署实战

1.前后端分离项目介绍 1.什么是前后端项目? 简单来说,就是将前端项目和后端项目进行独立部署,互相之间通过token进行数据交互. 2.前后端分离与动静分离有什么区别? 动静分离,是将动态页面编译成静态,然后缓存到CDN上面. 前后端分离,前端项目被编译成HTML,但是JS会通过Ajax获取数据,所以前端页面内容依然是动态的. 3.前后端项目采用renren-fast来实现 4.前后端项目环境 服务 台数 地址 功能 MySQL 3台 10.0.0.51,10.0.0.52,10.0.0.53

大中型网站集群架构企业级高标准全自动实战项目征集

大中型网站集群架构企业级高标准全自动实战 发布本博文目标: 老男孩教育全新期中集群架构项目实战(老男孩老师亲自带队) 1)征集网友或老男孩教育学生资源3-5人. 2)树立老男孩教育运维班期中集群架构项目标杆(期末的的架构会更精彩) 3)共同完成老男孩老师第一本书的结尾项目实战项目. 4)将结合23期运维班毕业前的期末架构项目出书(全自动化大型网站集群搭建优化) 5)让支持老男孩教育网友或老男孩教育学生得到锻炼和成长.享受出书作者待遇. 具体项目将以10台左右VM资源进行部署和演示,规模可以扩展到