前提要服务器的Docker开启远程连接
第一步:配置Docker的远程访问
1、修改/lib/systemd/system/docker.service
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、重启Docker服务
systemctl daemon-reload
systemctl restart docker
4、查看2375端口是否被监听
netstat -nlpt
5、服务器防火墙开启2375端口
firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
6、测试
在控制台输入:curl http://127.0.0.1:2375/version,会显示下面的信息
在自己电脑上将上面的127.0.0.1换成你服务器的ip地址
如果不能访问,那么需要在服务器的管理控制台添加安全组规则,我的服务器是阿里云的。添加开放2375端口。如下图
之后在用浏览器访问,效果如下
第二步:IDEA中配置Docker插件信息
打开设置中心
之后可能出现连接失败的问题,下面这样,原因就是你没有做我上面在服务器控制台添加安全组规则。
正常情况效果如下:
之后可以配置镜像加速器
点击OK之后,下方控制栏,出现Docker控制台
第三步:集成Maven插件
修改项目的pom文件
<properties>
<!--docker镜像的前缀-->
<docker.image.prefix>docker</docker.image.prefix>
</properties>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--远程Docker的地址-->
<dockerHost>http://服务器地址:2375</dockerHost>
<!--镜像名称,前缀/项目名-->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
在src的main下新建docker文件夹,将编写好的Dockerfile放到这个文件夹
第四步:构建镜像
依次使用 clean、package、docker:build 命令
最后一步的效果
查看Docker控制台
第五步:创建容器
Docker控制台选中镜像右键,点击创建镜像,填写参数,点击run
这里点击run,启动container的时候可能会出现出现iptables: No chain/target/match by that name。容器启动失败的问题。只需要重启一下docker服务就行。
一些日志和配置信息
浏览器访问服务器的8080端口