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. 将镜像上传到服务器
- 在客户机上新建目录存放光盘中的镜像文件,新建的文件夹最好包含日期和项目名,如 20191105_biaozu,这么做的目的是备份镜像文件。同时也为下一步将文件拷贝到服务器作准备。
- 将 20191105_biaozu 中的镜像文件拷贝到服务器目录
/../images/<projectName>
将光盘中的文件拷贝到客户硬盘,然后再将客户硬盘里的文件拷贝到服务器所花费的时间要少于单独从光盘拷贝文件到服务器。
服务器操作
5. 导入镜像
- 进入到拷贝镜像的服务器目录,为了好说明,称为镜像目录。实际上镜像可以放到任何地方,只要在保证在服务器上了,就能保证是正确的。如:
data/datagrand/images/bizozu_images
- 命令
ll
查看该目录下是否有刚导入的镜像文件,同时确认镜像名<imageName>
和标签<tagName>
。 - 将拷贝到服务器的镜像导入,在包含镜像的目录下执行命令
docker load -i <imageName>:<tagName>
,这个命令是 save 反向操作。在本地将我们本地仓库里面的镜像保存(导出)到我们指定的目录。在服务器上,将镜像导入到指定的目录。
导入镜像后可以通过命令docker images|grep <imageName>
查看指定镜像的信息,确保镜像已经导入成功
6. 更改镜像名
- 进入到部署目录,如:
data/datagrand/images/bizozu_deploy
- 更改 docker-compose.yml,将里面的 image 属性(所有有改动的镜像)改成导入的镜像名。
7. 删除容器、镜像
使用命令 docker-compose down
删除容器/镜像
8. 启动容器、镜像
使用命令 docker-compose up
启动容器/镜像
删除容器然后启动容器可以使用 docker-compose restart 重启,一步完成,但是该命令不会对修改的 docker-compose.yml 文件生效。
docker-compose down 与 docker-compose up 能够重启镜像,并对修改的 docker-compose.yml 生效。
可用命令
docker images|grep <imageName>
查看指定容器的信息
ll
列出所有的文件和目录,包含文件最后修改时间、文件大小等信息,并且每个每一项换行显示
docker 实战-项目部署的更多相关文章
- 实战项目部署应用到kubernetes流程(jenkins+docker+k8s)
说明 通过jenkins构建java应用程序发布到k8s集群中 本文已一个大数据的java项目来演示构建部署过程 支持发布和回滚 支持一套模板应用不同项目 k8s基础准备 创建项目名称空间 [root ...
- Ubuntu中安装jenkins+docker,实现项目部署
本人对于linux系统是个小白,恰逢公司新框架需要docker+jenkins部署项目,所以通过同事口述+一顿乱查,终于实现在虚拟机上搭建的ubuntu系统中 实现jenkins +docker 自动 ...
- docker打包项目部署
1.首先在本地安装docker,步骤可参考https://www.cnblogs.com/conswin/p/11055853.html 2.在对应项目目录下增加Dockerfile文件,其内容可参考 ...
- Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- docker实战部署Javaweb项目
一.部署环境说明 docker服务版本:version 18.09.0nginx服务版本:version: nginx/1.15.10redis服务版本:version: redis/5.0.3tom ...
- 云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)
2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功 能还是相当复杂得,并且维护复杂.将特殊性封装到 ...
- ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx
一.前言 在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core ...
- .NET Core实战项目之CMS 第十七章 CMS网站系统的部署
目前我们的.NET Core实战项目之CMS系列教程基本走到尾声了,通过这一系列的学习你应该能够轻松应对.NET Core的日常开发了!当然这个CMS系统的一些逻辑处理还需要优化,如没有引入日志组件以 ...
- Docker Gitlab CI 部署 Spring Boot 项目
目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...
随机推荐
- 对MVVM的理解
MVVM是Model-view-ViewMoudel的缩写 Model代表数据类型,也可以在Model中定义数据修改和操作的业务逻辑: View代表UI组件,负责将数据模型转化为UI展现出来: Vie ...
- 电商平台+keepalived高可用
192.168.189.131 电商平台 192.168.189.129 MySQL主192.168.189.130 MySQL备192.168.189.181 VIP 配置MySQL为互为主从并结合 ...
- php面试题收藏
总结几个要素: 1.个人简介名字大写,内容需要详实,一是可以给人留下映像,二是减少不必要的与面试官交换个人信息的时间.准备一份好的口头自我介绍是很有必要的,毕竟准备一次能用很久,时间花在上面很实用,面 ...
- sqlg rdbms 上实现的Apache TinkerPop
sqlg 可以让关系型数据库支持Apache TinkerPop,当前支持的数据库有postgresql,hsqldb,h2,mariadb,mysql,mssqlserver 以下是一个简单的使用 ...
- 框架入门经典项目TodoMVC
一.项目介绍 ①地址:http://todomvc.com/ ②GitHub下载模板 ③通过npm下载模板的样式 ④通过npm下载Vuejs ⑤项目文件,主要修改app.js和index.html两个 ...
- Vue的Key属性,v-for和v-if,v-if/v-show,v-pre不渲染,v-once只渲染一次
key属性为什么要加 key -- api 解释 key的特殊属性主要用在vue的虚拟dom算法,如果不适用key,vue会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法. ...
- linux netstat 命令简介
常用选项: -r, --route 显示路由表 -i, --interfaces 显示接口信息表-s, --statistics 显示网络协议汇总信息 -n, --numeric 不解析域名-p, - ...
- mybatis多参数查询问题:org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available par
错误如下: 这个是由于在执行sql的时候无法匹配sql语句的通配符造成的,有两种方式可以解决 第一种:在sql语句中通配符这样写,用0,1匹配: 第二种:在dao接口的方法中的参数前面加param ...
- Linux文件系统只读Read-only file system的解决方法
问题原因:系统没有正常关机,导致虚拟磁盘出现文件系统错误. 解决方法:使用fsck手动修复,具体操作如下: 重启系统后使用root进入单用户模式,运行 fsck.ext3 -y /dev/vda3 说 ...
- WIN10 删除此电脑7个文件夹-REG运行代码
Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ ...