1、编辑docker配置文件
vim /lib/systemd/system/docker.service
2、替换ExecStart
#将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#替换为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
3、防火墙开启2375端口
# 开放2375端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
4、重启防火墙并查询端口
firewall-cmd --reload
firewall-cmd --query-port=2375/tcp
5、测试是否成功开启远程访问
浏览器访问:http://docker服务器ip:2375/version
如果仍然不能访问请检测服务器安全组是否开启2375端口
6、IDEA中配置Docker
点击setup搜索docker
7、可以配置阿里云镜像加速服务
8、在pom.xm中配置Docker的Maven插件
<build>
<finalName>gateway</finalName>
<!--springboot打包插件-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</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>${project.artifactId}</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定我们项目中Dockerfile文件的路径-->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!--指定远程docker 地址-->
<dockerHost>http://10.64.160.59: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>
</plugins>
9、Dockerfile信息需要自己编写,放到src/main/docker目录下
FROM java:8
ENV LANG C.UTF-8
VOLUME /tmp
ADD gateway.jar app.jar
EXPOSE 8003
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","-c"]
10、构建镜像和创建容器
构建完成我们就可以在servic里面的docker看到构建好的镜像文件
最后右击镜像进行创建容器,并执行