浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)

 更新时间:2020年04月28日 10:06:23   作者:houyuSource  
这篇文章主要介绍了SpringBoot打包上传到docker并实现多实例部署(IDEA版),本文通过图文并茂实例详解的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

最近有一个朋友问我有没有玩过docker,回答起来底气不是很足 ^ - ^ (刚开始玩cloud的时候接触过,玩过一会,后面在实际开发中比较少用,所以基本上可以说是忘记了.),今天花了点时间整理之前的笔记以及整理走一个流程,记录一下吧,下次玩得时候C V 就好啦~

1. Docker的安装以及开启远程访问

1.1 安装

# 检查虚拟机内核版本,必须是3.10及以上
uname -r
# 安装docker
yum install docker
# 输入y确认安装
# 启动docker
systemctl start docker
# 查看docker版本
docker -v
# 开机启动docker
systemctl enable docker
# 停止docker
systemctl stop docker
# 重启docker
systemctl restart docker

1.2 开启远程访问

修改文件 docker.service

vim /usr/lib/systemd/system/docker.service

修改ExecStart这行
#ExecStart=/usr/bin/dockerd -H fd://–containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

# 重新加载配置文件
systemctl daemon-reload 
# 重启服务
systemctl restart docker.service 
# 查看端口是否开启 (如果是阿里云等服务器,需要 "安全" -> "防火墙" 开启端口2375)
netstat -nlpt
# 查看是否生效
curl http://127.0.0.1:2375/info

2. IDEA 安装 docker 插件并且连接

2.1 安装插件

这个很简单,就一步一步截图了。。。(这个谁呀,怎么使用汉化的的 IDEA 呀~~)

在这里插入图片描述

2.2 连接docker

在这里插入图片描述

3. 打jar包并且编写Dockerfile打jar这个在这里不赘述。。。编写Dockerfile,注意一下划线的地方,然后注意修改一下

在这里插入图片描述

FROM java:8
# 维护者信息
MAINTAINER houyu
# 这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp
# 复制上下文目录下的 /build/libs/fastboot-0.0.1.jar 到容器里
COPY /build/libs/fastboot-0.0.1.jar fastboot-0.0.1.jar
# bash方式执行,使fastboot-0.0.1.jar可访问
# RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /fastboot-0.0.1.jar"
# 指定时区
# ENV TZ='Asia/Shanghai'
# 声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 10007
# 指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","fastboot-0.0.1.jar", "--spring.profiles.active=prod"]

4. IDEA 配置构建镜像

4.1 配置运行脚本

在这里插入图片描述

4.2 运行脚本

在这里插入图片描述

5. 宿主机查看镜像并且确认部署成功

在这里插入图片描述

6. 部署多实例

具体的命令在后面:

在这里插入图片描述

操作脚本

# 查看镜像
docker images
# 查看安装的容器
docker ps -a
# 克隆c1726e8f3819镜像 安装成为一个fb1.2的容器
# -d:后台运行
# -p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
docker run --name fb1.2 -d -p 10008:10007 c1726e8f3819 
# 查看安装的容器
docker ps -a 
# 查看运行中的容器
docker ps 
# 验证fb1.1
curl 127.0.0.1:10007 
# 验证fb1.2
curl 127.0.0.1:10008

常用的docker命令(私人美酒)

1)、镜像操作(https://hub.docker.com/)

1、检索镜像的详细信息,如镜像的TAG。
docker search 镜像关键字    如:docker search redis
2、拉取镜像(:tag是可选的,tag表示标签,多为软件的版本,默认是latest)
docker pull registry.docker-cn.com/library/redis:5.0.3 加速拉取
docker pull 加速地址+镜像名:tag    如:docker pull redis:5.0.3
3、查看所有本地镜像
docker images
4、删除指定的本地镜像
docker rmi 镜像Id或名称   如:docker rmi Tomcat
5、重命名镜像
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

2)、容器操作(软件镜像----运行镜像----产生一个容器)

1、搜索镜像
docker search tomcat
2、拉取镜像(:tag是可选的,tag表示标签,多为软件的版本,默认是latest)
docker pull tomcat:latest
3、根据镜像启动容器(latest可以省略,其他标签一定要加上)
-d:后台运行
-p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
docker run --name 别名 -d 主机端口:容器内部的端口 REPOSITORY/IMAGE ID
如:docker run --name mytomcat -d 8080:8080 tomcat:latest
3.1 重启容器
docker restart 容器名称/ID
4、查看运行中的容器
docker ps
5、查看所有已安装的容器
docker ps -a
6、停止运行中的容器
docker stop 容器的id/名称
7、启动容器
docker start 容器的id/名称
8、删除一个容器
docker rm 容器的id/名称
9、查看容器的日志
docker logs container-name/container-id(容器名称或容器ID)
10、进入指定容器空间
docker exec -it 容器名称/ID /bin/bash
如:docker exec -it tensquare_es /bin/bash

7. 安全问题请不要在线上环境开启docker远程访问,否则可能会被当做肉机

具体可阅 Docker暴露2375端口导致服务器被攻击解决方法!

到此这篇关于浅析SpringBoot打包上传到docker并实现多实例部署(IDEA版)的文章就介绍到这了,更多相关spring boot 打包上传docker内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker常用的清除容器镜像命令小结

    Docker常用的清除容器镜像命令小结

    这篇文章主要给大家总结了Docker常用的清除容器镜像命令,相信对大家的学习和工作具有一定的参考借鉴价值,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • Docker容器的网络管理和网络隔离的实现

    Docker容器的网络管理和网络隔离的实现

    这篇文章主要介绍了Docker容器的网络管理和网络隔离的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 如何解决Linux系统下Docker占满分区的问题

    如何解决Linux系统下Docker占满分区的问题

    本篇文章主要介绍了如何解决Linux系统下Docker占满分区的问题。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Centos7安装docker compse踩过的坑及解决方法

    Centos7安装docker compse踩过的坑及解决方法

    本文,我们介绍如何在centos7环境下安装docker-compose, 记录下安装过程步骤以及遇到的问题还有解决办法,感兴趣的朋友参考下吧
    2018-01-01
  • docker日常使用的实用小技巧总结(推荐)

    docker日常使用的实用小技巧总结(推荐)

    docker是持续构建应用交付的一大利器也,但是要使工具发挥最大的功效还需要知道一些小技巧。下面这篇文章给大家主要总结介绍了关于docker日常使用的一些实用小技巧,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴。
    2017-09-09
  • Prometheus容器化部署的实践方案

    Prometheus容器化部署的实践方案

    这篇文章主要介绍了Prometheus容器化部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 如何修改docker容器中MySQL的用户密码

    如何修改docker容器中MySQL的用户密码

    本文主要介绍了如何修改docker容器中MySQL的用户密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Linux上使用docker启动redis并远程访问的实现

    Linux上使用docker启动redis并远程访问的实现

    这篇文章主要介绍了Linux上使用docker启动redis并远程访问的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • docker中修改mysql最大连接数及配置文件的实现

    docker中修改mysql最大连接数及配置文件的实现

    这篇文章主要介绍了docker中修改mysql最大连接数及配置文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Docker时间不一致,时区设置方式

    Docker时间不一致,时区设置方式

    这篇文章主要介绍了Docker时间不一致,时区设置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论