一、环境准备:
    1、vm虚拟机: Workstation 12 Pro 12.5.7 build-5813279

2、Centos 7

在虚拟机上安装好Centos7系统后,就可以开始准备安装Docker了。由于不想每次都敲sudo去获取权限什么的,本人直接是使用root账号登录的。下面开始正文。

二、Docker安装和配置
    1、安装方式一:

[root@localhost ~]# yum install docker

2、安装方式二:

[root@localhost ~]# curl -fsSL https://get.docker.com/|sh
上面两种方法都可以进行安装,只不过方式二的版本会更加新。接下来等待安装完成。

3、检查是否安装成功:

[root@localhost ~]# docker version

成功后会输出以下信息(Client有信息即可):

4、启动Docker服务并设置开机启动:

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

 5、配置下国内镜像服务(不是必须):

vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"]
}

Ps: 这里格式一定要正确,标准的json格式,不然服务不能启动!!!

6、配置远程连接(后续要用):

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

找到文中如下行:

ExecStart=/usr/bin/dockerd

将其修改为:

ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock

127.0.0.1修改为当前虚拟机内的Ip既可。如果是阿里云的话要写系统自己的ip,外网ip不好使

注:配置生效后可用:curl 127.0.0.1:2375测试是否成功。

成功会显示:

7、重启服务使配置生效:

[root@localhost ~]# systemctl deamon-reload
[root@localhost ~]# systemctl restart docker.service

到此为止Docker的部分基本已经完成!恭喜!恭喜!(Ps:我刚开始的时候怎么就这么不顺利呢orz!)

三、SpringBoot项目的容器化
    1、通过Spring Initializr快速建立一个SpringBoot项目,然后简单写一个控制器:

然后在POM里加入Docker的插件:

<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.</version>
<configuration>
<imageName>spring/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<dockerHost>http://127.0.0.1:2375</dockerHost>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

这里注意两个标签:

<imageName>:这个是镜像的名称,上述的镜像名称就是: spring/docekertest

<docherHost>:这个是容器服务的IP地址,就是虚拟机上的IP,请务必替换掉!

二:编写Dockerfile:
      创建文件,结构如下:

内容如下:

FROM java
VOLUME /tmp
ADD dockertest-0.0.-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

先启动项目测试下: OK!

然后就是打包了:  先package 生成jar包 再 docker:build 等待完成。

成功信息:

到此这个项目已经变成镜像了,可以使用容器去启动了。

四、启动容器
    让我们切回虚拟机,打开终端,输入如下命令:
[root@localhost ~]# docker run -p 8080:8080 -t spring/dockertest
出现熟悉的Springboot启动Banner 成功!

. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.13.RELEASE)
这时候切回Windows打开浏览器输入 Docker的服务IP:8080就可以访问项目了!

大功告成!

Docker容器入门之一:部署SpringBoot项目的更多相关文章

  1. Docker快速上手之部署SpringBoot项目

    Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期 ...

  2. docker入门篇 部署springboot项目

    安装docker Ubuntu16.04安装Docker 使用docker 注册docker服务 systemctl enable docker systemctl status docker 然后在 ...

  3. Docker容器使用jenkins部署web项目--总结(二)

    (1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat.   新建maven项目,添加findbugs plugin. 使用docker启动jenkins,go ...

  4. k8s + docker + Jenkins使用Pipeline部署SpringBoot项目时Jenkins错误集锦

    背景 系统版本:CentOS7 Jenkins版本:2.222.1 maven版本:apache-maven-3.6.3 Java版本:jdk1.8.0_231 Git版本:1.8.3.1 docke ...

  5. docker部署springboot项目

    本文介绍一下docker如何部署springboot项目. 前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfi ...

  6. Docker下部署springboot项目

    1.背景 如何在docker容器环境下部署一个springboot项目? 2.具体步骤 第一步:准备一个springboot项目的xxxx.jar包 jar包中用于测试的一个接口如下 第二步:编写Do ...

  7. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  8. mac和linux下使用Docker,部署SpringBoot项目到docker

    主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...

  9. 利用Dockerfile部署SpringBoot项目

    利用Dockerfile部署SpringBoot项目 1.创建一个SpringBooot项目并且打成jar包 2.在Linux中创建一个文件夹,来做docker测试 [root@izwz90lvzs7 ...

  10. Docker快速上手之搭建SpringBoot项目

    Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期 ...

随机推荐

  1. ubuntu下如何卸载nvidia显卡驱动?

    答: sudo apt-get remove nvidia* -y

  2. 【React自制全家桶】七、React实现ajax请求以及本地数据mock

    一.下载axios插件 yarn add axios 二.React的ajax请求代码如何放置 建议放置在生命周期函数之componentDidMount()中 三.ajax之get请求 axios. ...

  3. Postman系列之测试用例管理(二)

    实验简介 本文主要讲解Postman对多个测试用例的管理,让测试进行更有序,易于管理. 实验目的 Postman 测试集(Collections)管理的相关内容,它用来保存我们的 Request ,可 ...

  4. U盘文档自动备份

    检测到插入U盘即复制其中doc.ppt文件到指定目录 (ucopy.bat): @echo off :again del /Q /f "%temp%\copy.tmp" >n ...

  5. C 表达式中的汇编指令

    asm 为 gcc 中的关键字,asm 表达式为在 C代码中嵌套汇编指令,该表达式只是单纯的替换出汇编代码,并不对汇编代码的含义进行解析. asm 表达式有两种形式,第二种 asm-qualifier ...

  6. Postman接口测试:自动获取登录后的cookie并设置环境变量

    在对网站进行接口测试的时候,很多请求往往是需要带登录的cookie才能请求成功的,一般来说,可以用抓包软件(fiddler,浏览器的F12)来查看登录后的cookie,并把它设置到postman的环境 ...

  7. 积累-T

    emmm,各种知识点都有吧,主要方便自己记 随机修改网页图标 <script> var image=new Array(3); image.length=3; image[1]=" ...

  8. 【AMAD】salabim -- Python中进行离散事件模拟

    简介 用法 个人评分 简介 salabim1是用来定义离散事件模拟(DES2),以及转换为动画的一个python库. 用法 请看官方文档3. 个人评分 实用性是基于对平均群众的,大多数人还是接触不到这 ...

  9. NOIp2013D2T3 华容道【搜索&图论-最短路】

    题目传送门 暴力搜索 看到这道题的第一反应就是直接上$bfs$啦,也没有想到什么更加优秀的算法. 然后就是$15$分钟打了$70$分,有点震惊,纯暴力诶,这么多白给分嘛,太划算了,这可是$D2T3$诶 ...

  10. shell提升篇

    6. 条件判断 1.基本语法 [ condition ](注意condition前后要有空格) 注意:条件非空即为true,[ fsdm ]返回true,[] 返回false. 2. 常用判断条件 ( ...