IntelliJ IDEA实现Docker镜像部署

Updated on with 0 views and 0 comments

开启 Docker 远程访问

1.修改配置

vim /lib/systemd/system/docker.service

Xnip20200312091652.jpeg

将红框位置的修改为

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.重启守护进程

systemctl daemon-reload

3.重启 docker

systemctl restart docker

4.验证是否成功

浏览器输入,返回当前的 images 信息

http://49.233.171.80:2375/images/json

IntelliJ IDEA的配置

1.pom Docker插件

<properties>
	  <docker.image.prefix>wuruohui</docker.image.prefix>
</properties>
<!-- docker插件 -->
<build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <!-- 镜像名称 wuruohui/bbs-->
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <!-- 指定标签 -->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!-- 基础镜像jdk 1.8 -->
                    <baseImage>java</baseImage>
                    <!-- 制作者提供本人信息 -->
                    <maintainer>wuruohui 591330415@qq.com</maintainer>
                    <!-- 切换到/ROOT目录 -->
                    <workdir>/ROOT</workdir>
                    <cmd>["java","-version"]</cmd>
                    <entryPoint>["java","jar","${project.build.finalName}.jar"]</entryPoint>
                    <!-- 指定Dockerfile路径 -->
                    <!--                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->
                    <!-- 指定远程docker api地址 -->
                    <dockerHost>http://:2375</dockerHost>
                    <!-- 复制jar包到docker容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/ROOT</targetPath>
                            <!-- 用于指定需要复制的根目录,{project.build.directory}表示target目录 -->
                            <directory>${project.build.directory}</directory>
                            <!-- 用于指定需要复制的文件,${project.build.finalName}.jar指打包后的jar文件 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
          </plugins>
    </build>

2.配置 Docker 服务器

确保安装了docker插件,红线位置填自己的服务器IP,正确后下方会显示连接成功
Xnip20200312102312.jpeg

3.编写Dockerfile

Dockerfile 中是一个个的脚本

命令:

  • FROM:指定基础镜像,使用格式:FROM<镜像>:[TAG] FROM<镜像>@digest[校验码]
  • MAINTAINER:提供 Dokcerfile 制作者提供本人信息(逐渐废弃,使用 LABEL 代替),使用格式:MAITANIER "wuruohui <email>"
  • ENV:为 docker 容器设定环境变量,可以使用 docker inspect 命令查看,同时还能使用 docker run -env <key>=<value> 来修改环境变量
  • WORKDIR:用来切换工作目录的
  • VOLUME:数据卷
  • COPY:把宿主机中的文件放到镜像中去
  • ADD:类似 COPY
  • EXPOSE:为容器打开指定要监听的端口以实现与外部通信
  • RUN:用来执行命令的
#指定基础镜像,在其上进行定制`
FROM java:8
#SpringBoot 项目默认使用 `/tmp'目录作为工作目录,省去了复制文件的麻烦
#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /data 中写入的信息都不会记录进容器存储层
VOLUME /tmp
#复制上下文目录下的打包好的jar文件并重命名到容器里
ADD /target/bbs-0.0.1-SNAPSHOT.jar bbs.jar
#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8081
#指定容器启动程序及参数"
ENTRYPOINT ["java","-jar","bbs.jar"]

4.配置Docker发布

Xnip20200312104657.jpeg

使用Maven工具打包好之后就可以发布了

Xnip20200312105106.jpeg

Xnip20200312105336.jpeg


**PS:服务器环境centos7**