docker 实战-项目部署

Posted xinjie-just

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 列出所有的文件和目录,包含文件最后修改时间、文件大小等信息,并且每个每一项换行显示

以上是关于docker 实战-项目部署的主要内容,如果未能解决你的问题,请参考以下文章

云原生之Docker实战在Docker环境下部署kanboard项目管理工具

云原生之Docker实战在Docker环境下部署kanboard项目管理工具

Docker部署JavaWeb项目实战(转)

docker 实战-项目部署

Docker部署JavaWeb项目实战

云原生之Docker实战使用Docker部署Focalboard项目管理工具