美文网首页
docker创建springboot镜像

docker创建springboot镜像

作者: 最美的期待_dong | 来源:发表于2019-11-10 12:30 被阅读0次

    一、前言

    关于docker的知识,在这里我就不再赘述,相信大家都玩过虚拟机,那么你可以把docker的镜像当做是迷你版的虚拟机,它可以宿主在多种操作系统中,容器之间相互都是独立,它的优点就是占用内存小,方便部署,有点拎包入住的意思。

    二、部署步骤

    1、安装docker

    这里就不再细说了,网上有很多详细的安装步骤,我这边安装的18.03.1-ce

    查看docker是否安装

    2、将springboot打包的jar文件上传至服务器/home/springboot/docker_springboot_demo/

    上传jar包

    3、在jar文件同级目录创建Dockerfile文件->#vim Dockerfile

    编辑Dockerfile文件

    附上粘贴板:

    FROM java:8

    VOLUME /tmp

    ADD DOCKERDEMO.jar app.jar

    EXPOSE 8401

    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

    3、创建docker镜像

    在/home/springboot/docker_springboot_demo/ 执行命令 docker build -t docker_springboot_demo .                          (温馨提示:注意最后的点)

    创建镜像

    创建成功,可以用docker命令查下:docker images

    4、运行镜像

    执行命令(这里的8080端口是映射到外界的真实访问端口):docker run -p 8080:8401 -d docker_springboot_demo

    可以执行命令查看运行的镜像:docker ps

    运行镜像

    5、验证springboot工程是否正常启动

    执行命令查看工程运行日志:docker logs {容器ID}

    我们看日志是成功启动的,到浏览器访问下->

    访问服务

    OK,没问题,当然我们还可以启动多个服务,比如再开一个8081端口的:docker run -p 8081:8401 -d docker_springboot_demo

    三、扩展

    1、平常我们启动springboot服务一般会设置内存堆大小、回收模式,我们可以这样启动镜像:docker run --rm -e JAVA_OPTS='-Xmx2048m -Xms2048m'  -p 8080:8401 -d docker_springboot_demo

    2、这里我还要特意提一下域名映射,有的同学平常的一些项目会会使用hostname来替代频繁变化的IP,那么这个IP在宿主机/etc/homts里面的配置的默认是不会生效的,进入到容器内部:docker exec -it {容器ID} bash    查询下:cat /etc/hosts  是没有的;解决:你可以在运行镜像的时候指定:

    docker run --rm -e JAVA_OPTS='-Xmx2048m -Xms2048m' --add-host mysql_host:172.16.16.17 --add-host redis_host:172.16.16.18  -p 8080:8401 -d docker_springboot_demo

    3、镜像一次创建,无限使用(有点免安装软件的味道),你可以把镜像压缩打包,然后传到其他服务器解压加载就行了

    <1>导出镜像

    docker save <myimage>:<tag> | gzip > <myimage>_<tag>.tar.gz

    <2>导入镜像

    gunzip -c <myimage>_<tag>.tar.gz | docker load

    四、采坑

    1、在运行镜像时报错:WARNING: IPv4 forwarding is disabled. Networking will not work.

    解决:在docker的宿主机中更改以下

    [root@localhost ~]# vi /usr/lib/sysctl.d/00-system.conf

    添加如下代码:

    net.ipv4.ip_forward=1

    重启network服务

    # systemctl restart network

    五、后语

    小生才疏学浅,有不对的地方请指教,谢谢大家!

    相关文章

      网友评论

          本文标题:docker创建springboot镜像

          本文链接:https://www.haomeiwen.com/subject/jlnobctx.html