您的位置:首页 > 运维架构 > Docker

idea中安装docker插件连接docker server

2020-08-25 18:42 1191 查看

1. 前言

微服务项目原本采用的jar包的方式部署,考虑到后面会随着业务量增大,某些服务会复制多份,采用docker实现部署会更加方便和快捷;

2.安装环境

  1. 安装了docker的服务器,且支持远程连接
  2. idea开发环境
  3. springboot或者springcloud项目

file——> setting——>plugins——>marketplace——>docker
安装好重启idea后
file——> setting——>docker——>新增一个连接——>添加docker服务器配置

显示Connection successful 则连接成功,如果连接不成功,检查docker server是否是running状态,或者docker是否开启了远程连接;

配置成功后打开连接,会显示出当前docker server上的containers和images;

如何将springboot项目打包成docker能用的容器

pom.xml文件中加入docker的打包方式

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--加入下面两项配置-->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>

<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>

<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名-->
<imageName>svc/${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定 Dockerfile 路径-->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!--指定远程 docker api地址-->
<dockerHost>http://192.168.226.128:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径  此处配置的 即对应 target 目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

在src/main下面新建一个文件夹docker,并且新建一个docker配置的文件DockerFile

# 基于哪个镜像
FROM java:8
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 拷贝文件到容器,svc_user-1.0-SNAPSHOT.jar这里是maven打包后的名字
ADD svc_user-1.0-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
# 配置容器启动后执行的命令
#ENTRYPOINT  ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ENTRYPOINT  ["java","-jar","/app.jar"]

至此,使用maven的mvn clean 和mvn的clean就可以打包并自动执行mvn docker:build,将镜像上传到docker server

右键新生成的images,new container弹窗填写container name,端口的映射,可能还需要填写Run options

Docker网络模式 配置 说明
host模式 –net=host 容器和宿主机共享Network namespace。
container模式 –net=container:NAME_or_ID 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。
none模式 –net=none 容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。
bridge模式 –net=bridge (默认为该模式)

具体大家根据说明进行调整
然后,start container就行了

后一会儿就发现服务部署好了,并且启动了

3.总结

需要注意的是端口的映射和启动参数 –net=host相关的配置,然后就可以更加快捷地利用idea自带的docker插件快乐玩耍了!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: