学习总结-1:Springboot-jar包部署到Docker

一、工具

1.IDEA、2.VMware-CentOS7(安装好Docker)、3.合理的传输工具

二、准备

1.将springboot项目打成jar包;
2.利用合理的方式传输到虚机准备好的文件夹(InvoiceFile)内;

首次自以为是的利用Vmware Tools直接将jar包从物理机拖入到了虚机内,部署到容器内后死活启动不起来,查询日志才发现jar包损坏。

3.创建一个新的文件(命名为Dockerfile)

1.# vi Dockerfile --创建并编辑文件(此时处于命令模式);
2.# 键入i切换到输入模式,以输入字符;
3.# 输入:
#FROM命令定义构建镜像的基础镜像,该条必须是dockerfile的首个命令
FROM java:8
#用于指定持久化目录
VOLUME /temp
#将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
ADD invoice-0.0.1-SNAPSHOT.jar invoice.jar
#构建镜像时执行的命令;
RUN bash -c ‘touch /invoice.jar’
#配置容器,使其可执行化。配合CMD可省去"application",只使用参数,删除线文字可以不带;
ENTRYPOINT [“java”,"-Djava.security.egd-file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/invoice.jar"]
4.# 键入ESC,退出输入模式,切换到命令模式;
5.# 键入:,进入底线命令模式,然后依次输入wqEnter,保存退出;

三、打包镜像

1.在此文件夹(InvoiceFile)打开终端;
2.输入docker build -t invoice-images .,最后的.是必须的,表示当前目录;
3.回车等待镜像创建完成即可;

若出现下面情况,应该就是最后少输了.
“docker build” requires exactly 1 argument.
See ‘docker build --help’.
Usage: docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile

四、运行容器

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04
    就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。

1.在终端输入:
docker run -d -p 8080:8080 invoice-images
docker run -d -p 8080:8080 --name invoice-container invoice-images

-d: 让容器在后台运行
-P(大写): 将容器内部使用的网络端口映射到我们使用的主机上
-p: 指定端口
–name :设置容器命名
invoice-images是容器镜像

2.在终端输入docker ps即可查看正在运行的容器,若是有invoice-container则证明容器运行成功;
3.若无则可在终端输入docker ps -a查看所有容器,这里有就表示容器创建成功但是运行失败;
4.可以输入docker logs imagesID查看日志,imagesID是镜像的ID,可以输入docker images查看(此命令是查看镜像信息)

五、其他

1.容器镜像的相关指令

docker ps // 查看所有正在运行容器
docker logs containerID //查看xxx容器的日志
docker stop containerId // containerId 是容器的ID
docker ps -a // 查看所有容器
docker ps -a -q // 查看所有容器ID
docker stop (具体ID) // stop停止所有容器(或具体ID的容器)
docker restart containerID //重启此ID的容器
docker rm (具体ID) // remove删除所有容器(或具体ID的容器)
docker rmi imagesID //删除此ID的镜像

2.镜像导入导出

方式一:导出的文件大于方式二(因为这个方式将镜像的所有历史信息都保留了下来,能够回滚操作)
docker save -o aaa.tar bbb-images //将bbb镜像导出到(-o) aaa.tar
docker load -i aaa.tar //从aaa.tar导入(-i)到镜像及相关元数据(包含tag信息)
方式二:导出的文件小于方式一(只是单纯的在容器中导出)
docker export -o aaa.tar bbb-container //将bbb容器导出到(-o) aaa.tar
docker import aaa.tar aaa:aaa //将aaa.tar导入到aaa:aaa(tag)镜像

参考-1@蓝团青
参考-2@菜鸟教程
参考-3@菜鸟教程
参考-3@小苏少

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值