一.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 \ 

如下图:

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_微服务

 

2.重启和验证是否成功相关命令

# 重新加载配置文件

systemctl daemon-reload

# 重启docker

service docker restart

# 查看端口是否开启

 netstat -nlpt

# 验证端口是否生效

curl http://192.168.200.132:2375/info

3.Settings>>plugins  搜索docker插件进行安装如下图:(我的idea已安装过)

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_docker_02

4.输入docker连接信息如下图,说明连接docker成功

 

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_微服务_03

二.部署微服务项目到docker

1.找到idea右下脚的Service按钮  出现docker图标,右键鼠标,弹出Connect,点击确认,连接成功如下图:

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_jar_04

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

打包成功后如下图:

(注意:打包时终端输入命令时一定要在所打包工程的目录下)

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_微服务_05

 

再次看idea连接的docker下,发现打包的微服务已成镜像如下图:

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_微服务_06

4.鼠标右键镜像创建容器,填写容器名和容器映射

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_jar_07

再次查看容器列表,发现已生成一个eureka容器如下图:

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_docker_08

三.浏览器输入地址访问测试idea中eureka微服务部署到docker中是否可以访问如下图:

docker swarm 如何管理微服务中的配置文件 docker怎么部署微服务_微服务_09

(注意:写在最后每个人环境可能不一样,遇到报错不要慌,根据错误信息去排查,去百度就解决了,实在解决不了可以给博主留言)