一.idea连接虚拟的docker
1.Docker默认是不允许远程访问的,需要在配置文件配置以下
使用命令进入配置:vim /lib/systemd/system/docker.service
设置配置:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
如下图:
2.重启和验证是否成功相关命令
# 重新加载配置文件 systemctl daemon-reload # 重启docker service docker restart # 查看端口是否开启 netstat -nlpt # 验证端口是否生效 curl http://192.168.200.132:2375/info |
3.Settings>>plugins 搜索docker插件进行安装如下图:(我的idea已安装过)
4.输入docker连接信息如下图,说明连接docker成功
二.部署微服务项目到docker
1.找到idea右下脚的Service按钮 出现docker图标,右键鼠标,弹出Connect,点击确认,连接成功如下图:
2.Maven pom.xml对应的打包配置如下:
自己本地maven仓库的setting.xml 需要添加如下代码:
注意:找到 <pluginGroups>标签添加<pluginGroup>com.spotify</pluginGroup>,没有 <pluginGroups>标签可直接把如下直接赋值进去
<pluginGroups>
<pluginGroup>com.spotify</pluginGroup>
</pluginGroups>
自己的微服务工程的pom.xml打包时加入如下代码:
<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> <!--镜像名称 yang/test-docker-demo--> <imageName>yang/${project.artifactId}</imageName> <!--标签版本--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!--基础镜像,相当于Dockerfile里的from--> <baseImage>java</baseImage> <!--作者信息--> <maintainer>yang@yang.com</maintainer> <!--入口点,project.build.finalName就是project标签下的build标签下的filename标签内容,test-docker-demo--> <!--相当于启动容器后,会自动执行java -jar/test-docker-demo.jar--> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <!--docker地址--> <dockerHost>http://192.168.200.132:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/</targetPath> <!--复制的根目录,target--> <directory>${project.build.directory}</directory> <!--把哪个文件上传到docker,相当于Dockerfile里的add test-docker-demo.jar /--> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
|
3.在自己需要打包的的微服务终端下输入如下命令:
mvn clean package docker:build
打包成功后如下图:
(注意:打包时终端输入命令时一定要在所打包工程的目录下)
再次看idea连接的docker下,发现打包的微服务已成镜像如下图:
4.鼠标右键镜像创建容器,填写容器名和容器映射
再次查看容器列表,发现已生成一个eureka容器如下图:
三.浏览器输入地址访问测试idea中eureka微服务部署到docker中是否可以访问如下图:
(注意:写在最后每个人环境可能不一样,遇到报错不要慌,根据错误信息去排查,去百度就解决了,实在解决不了可以给博主留言)