IntelliJ IDEA快速实现Docker镜像部署 一、Docker开启远程访问 二、IntelliJ IDEA安装Docker插件 三、启用Docker 四、Spring Boot服务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 -nlpt
#直接curl看是否生效
[root@izwz9eftauv7x69f5jvi96z docker]# curl http://127.0.0.1:2375/info

二、IntelliJ IDEA安装Docker插件

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务docker部署
三、启用Docker

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务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 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
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镜像

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务docker部署

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务docker部署

5、启动镜像

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务docker部署

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务docker部署

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务docker部署

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

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

6、客户端访问

IntelliJ IDEA快速实现Docker镜像部署
一、Docker开启远程访问
二、IntelliJ IDEA安装Docker插件
三、启用Docker
四、Spring Boot服务docker部署

Docker学习——理解Docker与安装(一)

Docker学习——三大组件的应用(二)

Docker学习——数据管理、使用网络(三)

Docker学习——创建镜像(四)

Docker学习——Dockerfile 指令详解(五)

Docker学习——多阶段构建(六)

Docker学习——Docker 三剑客(七)

Docker学习——Kubernetes(八)