Spring Boot与Docker部署
来源:互联网 发布:adobe是什么软件 编辑:程序博客网 时间:2024/06/16 03:56
开启Docker远程访问
首先需要开启docker远程访问功能,以便可以进行远程操作。
CentOS 6
修改/etc/default/docker文件,重启后生效(service docker restart)。
DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375"
CentOS 7
打开/usr/lib/systemd/system/docker.service文件,修改ExecStart这行。
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重启后生效
systemctl daemon-reload systemctl restart docker.service
测试是否生效
curl http://127.0.0.1:2375/info
新建Maven工程
pom.xml配置如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test.springboot.docker</groupId> <artifactId>docker-springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.3.RELEASE</version> </parent> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.14</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <dockerHost>http://192.168.1.200:2375</dockerHost> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build></project>
imageName:指定了镜像的名字
dockerDirectory:指定Dockerfile的位置
dockerHost:指定Docker远程API地址
resources:指那些需要和Dockerfile放在一起,在构建镜像时使用的文件,一般应用jar包需要纳入
创建Java类
package hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class Application { @RequestMapping("/") public String home() { return "Hello Docker World"; } public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
创建Dockerfile
在src/main/docker目录下创建一个名为Dockerfile的文件,配置如下:
FROM javaVOLUME /tmpADD docker-springboot-0.0.1-SNAPSHOT.jar app.jarRUN bash -c 'touch /app.jar'ENV JAVA_OPTS=""ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
FROM java:指Docker Hub上官方提供的java镜像,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用。
VOLUME /tmp:创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。
ADD docker-springboot-0.0.1-SNAPSHOT.jar app.jar:将应用jar包复制到/app.jar
ENTRYPOINT:表示容器运行后默认执行的命令
完整目录结构如下所示:
运行以下命令创建Docker镜像:
package docker:build
Docker启动镜像
查看项目是否上传成功
启动镜像
docker run -p 8888:8080 springboot/docker-springboot
通过浏览器访问
这个世界上没有知识是学不会的,不是吗?如果一开始学不会,就可以把问题细化分解,然后学习更基本的知识。最后,所有问题都能变得和1+1=2一样简单,我们需要的只是时间。好了,最后给大家推荐一个学习Java的好网站JAVA自学网站–how2j.cn
- Spring Boot与Docker部署
- Spring Boot与Docker部署
- docker部署Spring boot项目
- 使用Docker部署 spring-boot maven应用
- Docker 中部署 Spring boot 项目
- 使用Docker部署 spring-boot maven应用
- spring boot 使用docker在阿里云容器服务部署
- Spring boot项目在docker下的部署,发布
- 使用Docker部署Spring Boot 应用 Dockerfile方式
- Spring Boot+Docker项目cacubd-server-collector的部署运行
- Spring Boot 部署与服务配置
- Spring Boot 部署与服务配置
- Spring Boot 部署与服务配置
- Spring Boot 部署与服务配置
- Spring Boot 部署与服务配置
- Spring Boot 部署与服务配置
- Spring Boot 部署与服务配置
- Spring Boot 部署与服务配置
- 在ubuntu12.04中安装wine和source insight
- glyphicons-halflings-regular.woff2 net::ERR_ABORTED
- mybatis 存储过程使用
- Maven学习之路二(Maven下载安装)
- 笔记四:linux下IO口模拟实现I2C协议
- Spring Boot与Docker部署
- 安防摄像机手机直播方案介绍
- 动态路由协议OSPF,RIP,EIGRP对比
- C++ 多态与虚函数
- CentOS安装Tomcat服务器
- java nio解决半包 粘包问题
- Dubbo入门-分布式原理详解--搭建一个最简单的Demo框架
- asm.js 和 Emscripten 入门教程
- Qt5模块