前提要服务器的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端口

最后修改日期:2020-07-12

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。