54 0 0 0
修改docker.service文件,添加监听端口 -H tcp://0.0.0.0:2375
vi /usr/lib/systemd/system/docker.service
找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示 重启docker
systemctl daemon-reload
systemctl start docker
访问:http://localhost:2375/version 返回版本信息表示成功
开启防火墙
在File --> Settings --> Plugins 在输入框中搜索Docker,选择并安装
在File–> Settings–>Build,Execution,Deployment中找到Docker
新建一个docker实例,然后在Engine API URL中将docker所在ip端口号填上,填完如果下面显示Connection successful证明连接docker成功。如果失败,可能是我们上一步docker开启远程连接未成功。
我们设置完成后,回到idea主界面,可以看到页面下面有一个docker窗口(有些版本是services窗口)。点击绿色箭头,连接docker。连接上后显示Containers和Images就是我们现在docker中已经有的容器和镜像。
修改pom.xml文件,引入docker-maven-plugin插件相关配置. 改配置在plugins标签内
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<!-- 跳过单元测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</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>
<!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名-->
<imageName>project/${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--指定基础镜像jdk1.8-->
<baseImage>java</baseImage>
<!--镜像制作人本人信息-->
<maintainer>v-kun</maintainer>
<!--切换到ROOT目录-->
<workdir>/ROOT</workdir>
<cmd>["java", "-version"]</cmd>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"] </entryPoint>
<!--指定远程 docker api地址-->
<dockerHost>http://192.168.4.32: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/resources下新建文件夹docker,在docker文件夹下新建DockerFile,编辑DockerFile
FROM java
MAINTAINER v-kun v-kun.com
WORKDIR /ROOT
ADD /ROOT/risen-hnshzt-txl-0.0.1-SNAPSHOT.jar /ROOT/
ENTRYPOINT ["java", "-jar", "risen-hnshzt-txl-0.0.1-SNAPSHOT.jar"]
CMD ["java", "-version"]
使用maven打包。我们在pom.xml中配置过,如果我们是用maven的package,那么就会自动使用Dockerfile文件进行构建。
我们在docker窗口中,找到我们刚才创建的镜像文件,鼠标右键,选择Create container,我们修改创建容器所需要的配置。
在Create Docker Configuration弹窗中修改
配置完成后保存。以后我们启动项目时都会执行maven的package命令,自动将我们打包并把项目生成docker镜像文件启动。
以后,如果我们修改项目后,都可以使用下图所示去启动。 它会自动打包创建docker镜像并启动项目。
如果在idea的docker里面看项目日志中文乱码 打开Help-Edit Custom VM Options 在最后加一行,重启idea
-Dfile.encoding=UTF-8