~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难….

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

作者:波波仔86

blog.csdn.net/bobozai86/article/details/88875784

1、Docker开启远程访问

[root@izwz9eftauv7x69f5jvi96z docker]# vim /lib/systemd/system/docker.service
#修改ExecStart这行
ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

#重新加载配置文件
[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

2、Intellij IDEA安装Docker插件

打开Idea,从File->Settings->Plugins->Install JetBrains plugin进入插件安装界面,在搜索框中输入docker,可以看到Docker integration,点击右边的Install按钮进行安装。安装后重启Idea。

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

重启后配置docker,连接到远程docker服务。从File->Settings->Build,Execution,Deployment->Docker打开配置界面。

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

3、spring boot服务Docker部署

3.1新建一个Spring boot工程,编写测试接口

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

3.2修改pom文件,添加properties,添加plugin

<properties>
        <java.version>1.8</java.version>
        <docker.image.prefix>bozai</docker.image.prefix>
    </properties>


    <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>

3.3配置Dockerfile文件:在工程根目录下新建Dockerfile文件。

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

内容,如下:

FROM java:8
VOLUME /tmp
COPY target/demo-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c "touch /demo.jar"
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]

4、创建Docker镜像

将工程打包,在idea Terminal中执行mvn clean package命令进行编译打包,打包后会在target目录下生成jar包。生成jar包后,可以在本地启动服务,进行测试。测试后,配置docker镜像制件命令。从Run->Edit Configrations进入配置界面。

点击Docker,再点击+号,添加一个docker命令,输入Name,选择Server,选择Dockerfile文件,输入镜像tag,完成配置。

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

完成后,执行这个命令:

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

执行成功后,可以远程docker上看到这个镜像:

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

执行docker ps可以看到,镜像已经生产容器开始运行:

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

打开浏览器,访问测试:

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

参考:

https://my.oschina.net/wuweixiang/blog/2874064
https://blog.csdn.net/sealir/article/details/81200662

Java面试题专栏

【61期】MySQL行锁和表锁的含义及区别(MySQL面试第四弹)
【62期】解释一下MySQL中内连接,外连接等的区别(MySQL面试第五弹)
【63期】谈谈MySQL 索引,B+树原理,以及建索引的几大原则(MySQL面试第六弹)
【64期】MySQL 服务占用cpu 100%,如何排查问题? (MySQL面试第七弹)
【65期】Spring的IOC是啥?有什么好处?
【66期】Java容器面试题:谈谈你对 HashMap 的理解
【67期】谈谈ConcurrentHashMap是如何保证线程安全的?
【68期】面试官:对并发熟悉吗?说说Synchronized及实现原理
【69期】面试官:对并发熟悉吗?谈谈线程间的协作(wait/notify/sleep/yield/join)
【70期】面试官:对并发熟悉吗?谈谈对volatile的使用及其原理


~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....


欢迎长按下图关注公众号后端技术精选

~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....

原文始发于微信公众号(后端技术精选):~实践一下,用IDEA自动化部署Docker镜像,好像并没有想象中的那么难....