Docker容器入门之一:部署SpringBoot项目
一、环境准备:
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项目的更多相关文章
- Docker快速上手之部署SpringBoot项目
Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期 ...
- docker入门篇 部署springboot项目
安装docker Ubuntu16.04安装Docker 使用docker 注册docker服务 systemctl enable docker systemctl status docker 然后在 ...
- Docker容器使用jenkins部署web项目--总结(二)
(1)需要安装Docker容器,在Docker容器内安装jenkins,gogs,tomcat. 新建maven项目,添加findbugs plugin. 使用docker启动jenkins,go ...
- 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 ...
- docker部署springboot项目
本文介绍一下docker如何部署springboot项目. 前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfi ...
- Docker下部署springboot项目
1.背景 如何在docker容器环境下部署一个springboot项目? 2.具体步骤 第一步:准备一个springboot项目的xxxx.jar包 jar包中用于测试的一个接口如下 第二步:编写Do ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- mac和linux下使用Docker,部署SpringBoot项目到docker
主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...
- 利用Dockerfile部署SpringBoot项目
利用Dockerfile部署SpringBoot项目 1.创建一个SpringBooot项目并且打成jar包 2.在Linux中创建一个文件夹,来做docker测试 [root@izwz90lvzs7 ...
- Docker快速上手之搭建SpringBoot项目
Docker是基于Go语言实现的云开源项目. Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装.分发.部署.运行等生命周期 ...
随机推荐
- GNU项目
目标在于建立一个完全相容于UNIX的自由软件环境.发展GNU系统的计划,最早由理查德•斯托曼在1983 年启动,它是自由软件基金会最早致力的目标.最近一个GNU系统版本,是于2011年4月1日释出的G ...
- linux添加用户所在群组
etc目录下面有两个文件一个passwd一个grouppasswd里gid是主组,其他组是扩展组,扩展组在/etc/group里描述.useradd username如果不指定,默认创建一个与uid相 ...
- jsonp 原理 并模拟实现一个简单的jsonp
jsonp产生的背景 1.从原网站向目标网站(服务端)发送ajax请的时候,由于浏览器的安全策略(这两个网站只要域名,端口,协议 有一个不同就不允许请求访问)导致跨域,从而请求无法正常进行. 2.We ...
- 跨平台python异步回调机制实现和使用方法
跨平台python异步回调机制实现和使用方法 这篇文章主要介绍了python异步回调机制的实现方法,提供了使用方法代码 1 将下面代码拷贝到一个文件,命名为asyncore.py 代码如下: impo ...
- golang 数据类型之间的转换
一.基本数据类型之间的转换 1.string到int int,err:=strconv.Atoi(string) 2.string到int64 int64, err := strconv.ParseI ...
- swoole前置基础知识 进程间通信
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息. IPC的方式通常有管道(包括无名管道和命名管道).消息队列.信号量.共享存储.Socket ...
- /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found错误的解决 转载
升级cmake时,提示“Error when bootstrapping CMake:Problem while running initial CMake”,第二次运行./bootstrap时,直接 ...
- Python爬虫学习==>第四章:MySQL的安装
学习目的: 掌握MySQL数据库的安装 正式步骤 Step1:安装数据库 百度MySQL,下载软件 端口设置 设置密码,我的密码123456 下一步 下一步 查看MySQL服务器是否启动 PS:未申明 ...
- 【Linux开发】linux设备驱动归纳总结(七):1.时间管理与内核延时
linux设备驱动归纳总结(七):1.时间管理与内核延时 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
- 最大熵马尔科夫模型(MEMM)及其标签偏置问题
定义: MEMM是这样的一个概率模型,即在给定的观察状态和前一状态的条件下,出现当前状态的概率. Ø S表示状态的有限集合 Ø O表示观察序列集合 Ø Pr(s|s’,o):观察和状态转移概 ...