docker 实战-项目部署

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

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

该工做流程比较特殊服务器

所谓闭源环境就是网络

  • 没有网络,客户机没有连接外网。
  • 不能使用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. 刻盘

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

客户电脑操做

4. 将镜像上传到服务器

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

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

服务器操做

5. 导入镜像

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

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

6. 更改镜像名

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

7. 删除容器、镜像

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

8. 启动容器、镜像

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

删除容器而后启动容器可使用 docker-compose restart 重启,一步完成,可是该命令不会对修改的 docker-compose.yml 文件生效。

docker-compose down 与 docker-compose up 可以重启镜像,并对修改的 docker-compose.yml 生效。

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

相关文章
相关标签/搜索