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 的安装这里就不赘述了,基本上几行命令都可以了, ...
随机推荐
- LeetCode 1081. Smallest Subsequence of Distinct Characters
原题链接在这里:https://leetcode.com/problems/smallest-subsequence-of-distinct-characters/ 题目: Return the le ...
- go语言 函数return值的几种情况
分三种情况 (以下 “指定返回值”这句话, 仅指return后面直接跟着的返回值) 退出执行,不指定返回值 (1) 函数没有返回值 package main import ( "fmt&qu ...
- 代码块和Java的API及Object类
代码块 局部代码块 特点: 以”{}”划定的代码区域,此时只需要关注作用域的不同即可 方法和类都是以代码块的方式划定边界的 构造代码块 优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作 ...
- MySQL 练习题目 二刷 - 2019-11-4 5:55 am
建表的过程 create table student( sid int not null primary key, sname ) not null, sborn date, ssex ) not n ...
- 文件搜索命令(命令搜索)which、whereis
一.which命令: 搜索命令所在目录(绝对路径)或者别名信息. 用户可以使用的命令存放在: /bin /usr/bin 管理员使用的命令: /sbin /usr/sbin 1.带有别名的命令: 二. ...
- planAhead的启动时间较长
发现Xilinx planAhead的启动时间约需10秒钟.
- pytest + allure 生成测试报告
pytest测试样例规则:测试文件以test_开头(以_test结尾也可以)测试类以Test开头,并且不能带有 init 方法测试函数以test_开头断言使用基本的assert即可 ubuntu 安装 ...
- javascript的Map使用
setExpenseAndAmountSum: function() { var detailList = vehicleVueObj.vehicleData; var expenseAmountSu ...
- 科研黑帮 | Molecular Genetic Anatomy and Risk Profile of Hirschsprung’s Disease
PNAS又来一篇:Gene- and tissue-level interactions in normal gastrointestinal development and Hirschsprung ...
- Android ANR log trace日志文件分析
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_25804863/article/ ...