IntelliJ IDEA快速实现Docker镜像部署 顶

一、Docker开启远程访问

[root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/lib/systemd/system/docker.service
#修改ExecStart这行
ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock
#重新加载配置文件
[root@izwz9eftauv7x69f5jvi96z docker]# systemctl daemon-reload    
#重启服务
[root@izwz9eftauv7x69f5jvi96z docker]# systemctl restart docker.service 
#查看端口是否开启
[root@izwz9eftauv7x69f5jvi96z docker]# netstat -nptl
#直接curl看是否生效
[root@izwz9eftauv7x69f5jvi96z docker]# curl http://127.0.0.1:2375/info

二、IntelliJ IDEA安装Docker插件

三、启用Docker

四、Spring Boot服务docker部署

1、新建一个Spring Boot工程,在工程里写一个REST接口,如下,简单返回一个字符串。

/**
 * DemoController
 *
 * @author weixiang.wu
 * @date 2018-11-08 17:26
 **/
@RestController
public class DemoController {

	@RequestMapping("test")
	public String demo() {
		return "demo for docker";
	}
}

 2、修改pom文件,添加properties,添加plugin:

<?xml version="1.0" encoding="UTF-8"?>
<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>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <name>dockercon</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <docker.image.prefix>wuweixiang</docker.image.prefix>
    </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>1.0.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory></dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3、配置Dockerfile文件:在工程根目录下新建Dockerfile文件,内容如下:

#指定基础镜像,在其上进行定制
FROM java:8

#维护者信息
MAINTAINER wuweixiang <wuweixiang.alex@gmail.com>

#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /data 中写入的信息都不会记录进容器存储层
VOLUME /tmp

#复制上下文目录下的target/demo-1.0.0.jar 到容器里
COPY target/demo-1.0.0.jar demo-1.0.0.jar

#bash方式执行,使demo-1.0.0.jar可访问
#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /demo-1.0.0.jar"

#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080

#指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","demo-1.0.0.jar"]

4、创建docker镜像

5、启动镜像

也可以直接用在docker客户端上直接执行:

docker run -p 28080:8080 --name wwx wuweixiang/demo:1.0

6、客户端访问

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户画像

中断向量 中断向量表

1、中断标识码(中断类型号):由硬件(通常是中断控制器)产生,以标识不同的中断源。

11530
来自专栏yukong的小专栏

mac os下使用 Docker安装 oracle数据库

在mac os需要通过docker-toolbox安装docker 你可以在这里下载docker-toolbox

43720
来自专栏Laoqi's Linux运维专列

kibana日志管理与配置

80420
来自专栏Java帮帮-微信公众号-技术文章全总结

Docker 学习教程【面试+工作】

87840
来自专栏码神联盟

框架 | SpringBoot项目发布到自动化容器Docker步骤

54330

20分钟搞定——通过Docker部署Spring Boot应用程序到Bluemix云计算平台

我很想了解关于 Java 中 Spring 框架的更多内容。借 Spring 之势来构建企业应用程序,其简单性使得它非常有趣。于是我着手实践了一个简单的教程,并...

31980
来自专栏熊二哥

SpringBoot详细研究-04部署测试与监控

这部分的内容实际就是devops的主要工作内容,当然一名合格的程序要也需要掌握这部分的知识。 ? ? 热部署 简单来说,在开发时,修改了任何的代码,I...

25890
来自专栏小狼的世界

Kubernetes中Pod的健康检查

我们先来看一下Kubernetes的架构图,每个Node节点上都有 kubelet ,Container Probe 也就是容器的健康检查是由 kubelet ...

34710
来自专栏恰童鞋骚年

Java微服务之Spring Boot on Docker

本文学习前提:Java, Spring Boot, Docker, Spring Cloud

29940
来自专栏云计算教程系列

如何在Ubuntu 18.04上使用Traefik作为Docker容器的反向代理

Docker可以是在生产中运行Web应用程序的有效方法,但您可能希望在同一个Docker主机上运行多个应用程序。在这种情况下,您需要设置反向代理,因为您只想公开...

49420

扫码关注云+社区

领取腾讯云代金券