SpringBoot生成docker镜像,完成容器部署

docker介绍

Docker 是一个开源的应用容器引擎,基于 Go语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。


docker安装

本次安装是基于centos7.0安装

采用yum的安装方式

yum -y install docker

等待安装完成,完成之后查看docker的版本信息。

docker version

出现:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?原因是没有启动docker服务。

启动docker服务

service docker start

 

 

docker安装出现错误排查

当启动docker服务时候可能会出现下图这个错误

可以看见错误信息里面有提示的命令,输入排查

报错信息是 SELinux不支持这个内核上OrthALA2图形驱动程序,所以我们进行编辑docker配置文件

vim /etc/sysconfig/docker

奖原先的  --selinux-enabled  修改为  --selinux-enabled=false 保存退出即可。

再重新启动服务

service docker start或者systemctl start docker

发现服务已经被启动好了。

 

 

将springboot项目打包成jar

参考:https://blog.csdn.net/qq_35618489/article/details/88228360

 

上传jar到linux服务器上面

上传路径可以自定义

ok,接下来就是创建镜像了。

 

安装JDK8的镜像

安装JDK8的镜像

docker pull java:8

如果下载很慢,建议使用阿里云的镜像加速器。https://cr.console.aliyun.com/cn-hangzhou/mirrors

在控制台输入上面的加速脚本,每个人都要唯一的加速地址

回车,继续输入上面的 docker pull java:8,下载完成查看docker安装了哪些镜像

docker images

 

创建Dockerfile文件生成镜像

因为创建镜像文件docker默认必须是:Dockerfile文件

所以在项目的任意位置创建在Dockerfile文件,我创建位置是和上面的jar包一个路径

文件内容是

FROM java:8

COPY springcloud-2.0-eureka-server.jar app.jar

EXPOSE 8010

ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"]

介绍一下参数意思:

  • FROM java:8 是指含有jdk1.8的镜像
  • COPY springcloud-2.0-eureka-server.jar app.jar 意思是,将当前目录下面的springcloud-2.0-eureka-server.jar复制命名为app.jar,复制后的名字可以自定义。
  • EXPOSE 8010 意思就是开放内部端口8100,就是与springboot项目application.yml的项目端口号一致
  • ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"] 就是制作镜像完成最后执行的命令,类似如下命令,只不过执行的是拷贝后的app.jar名称

保存文件退出。

使用docker build命令创建镜像

输入命令:

docker build -t sprincloud-eureka-server:1.0 .

注意

  • sprincloud-eureka-server名称是自定义的镜像名称
  • 自定义名称后面是冒号,:1.0 ,1.0当前版本号,可以自定义,
  • 最后空格加上一个点,不然会报错

创建完成查看镜像列表。

创建springboot的docker容器

不知道命令的输入

docker create --help

创建容器

docker create --name eureka -t -p 8100:8100 sprincloud-eureka-server:1.0

参数介绍

  • --name 是别名为eureka
  • -t 让docker分配一个伪终端并绑定到容器的标准输入上
  • -p 8100:8100 是项目的端口号,前面是外部通讯号,后边是项目真实端口号,二者相关联,外部端口可以随意设置,此处设置为一致
  • sprincloud-eureka-server:1.0是镜像名称和版本号

启动容器

docker start eureka && docker logs -f eureka

参数介绍

  • docker start eureka是启动容器
  • && docker logs -f eureka 启动完成之后查看日志,-f 是持续不中断

启动完成之后,在虚拟机外部查看,先关闭防火墙。

systemctl stop firewalld

ok,到此处就打包部署完毕了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值