IDEA Docker插件一键部署

1. 设置服务器Docker支持远程访问

1.1 编辑此文件:

army@studyserver:~$ vim /lib/systemd/system/docker.service

021

1.2 重新加载配并重启docker

systemctl daemon-reload
service docker restart

现在设置完毕了;

 

2. IDEA开发工具安装Docker插件,并配置远程服务器IP

2.1 Idea 安装docker Integration 插件

022

2.2 在Idea中创建docker打包环境

023

2.3 连接远程docker容器。 第二步操作完成后,在idea下方会有个docker的窗口

024

 

3. SpringBoot编写Dockerfile和打包配置

3.1 以下是Dockerfile内容:

# 指定基础镜像(必需且为第一条指令,scratch是空白镜像)
FROM 192.168.3.16:5000/openjdk:latest

# MAINTAINER已经过期,具体参考:https://docs.docker.com/engine/reference/builder/#label
LABEL author-name="army.qin@easterphoenix.com"

# 为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 Dockerfile 中,我们可以事先指定某些目录挂载为匿名卷,
# 这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。
VOLUME /tmp

# 在 COPY 和 ADD 指令中选择的时候,可以遵循这样的原则,
# 所有文件复制使用 COPY 指令,仅在需要自动解压缩的场合使用 ADD 指令
ADD target/docker-study.jar app.jar

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

# EXPOSE 指令仅仅是声明的是运行时容器提供服务的端口
# 用于帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;
#EXPOSE 8080

# JVM参数可选
#CMD ["java","-jar","-Xms64m","-Xmx64m","/docker-study.jar"]
#ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

3.2 以下是pom.xml打包配置文件:

<properties>
        <java.version>1.8</java.version>
        <docker.repostory>192.168.3.16</docker.repostory>
</properties>
<build>
        <!-- 最终Maven本地打包出来的jar包名称 -->
        <finalName>${project.artifactId}</finalName>
        <!--<defaultGoal>package</defaultGoal>-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <!-- GitHub: https://github.com/spotify/docker-maven-plugin -->
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--<serverId>server-registry</serverId>-->
                    <registryUrl>http://${docker.repostory}:5000</registryUrl>
                    <pushImage>true</pushImage>
                    <!-- 远程镜像名称 -->
                    <imageName>${docker.repostory}:5000/${project.artifactId}:${project.version}</imageName>
                    <forceTags>true</forceTags>
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <dockerHost>http://${docker.repostory}:22375</dockerHost>
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/target</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

4. IDEA命令行执行以下,自动打包并上传到远程服务器启动。

mvn clean package -Dmaven.test.skip=true

 

查看服务器镜像 docker images

查看正在运行镜像 docker ps -a