一、 docker开启远程连接访问
首先我们要开启docker的远程连接访问。保证不是docker所在的服务器,也能够远程访问docker。
Linux版的docker:
1.修改docker.service文件,添加监听端口 -H tcp://0.0.0.0:2375
vi /usr/lib/systemd/system/docker.service
找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示
2.重启docker
systemctl daemon-reload
systemctl start docker
3.如果我们有防火前记得添加防火墙策略或者关闭防火墙
4.查看docker状态
service docker status
5.本地测试是否能连接到docker info
curl http://localhost:2375/info
查看线程 ps -ef | grep dockerd
二、 idea配置以及项目配置
注意: 只要下面提示Connection successfl 就表示连接成功了;
配置pom文件添加插件:
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.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.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定 Dockerfile 路径-->
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<!--指定远程 docker api地址-->
<dockerHost>http://101.34.73.154: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>
附上项目目录
编写Dockerfile
# Dockerfile
# 基于的镜像
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD *.jar app.jar
# -Djava.security.egd=file:/dev/./urandom 可解决tomcat可能启动慢的问题
# 具体可查看:https://www.cnblogs.com/mightyvincent/p/7685310.html
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 对外端口
EXPOSE 8081
微服务抽取过公共模块的需要在总项目那运行package
最后打包完成会有信息出现,显示成功
注意Dockerfile文件存放的位置要和pom.xml指定的相同,要不然会出现找不着的情况
在docker里去查看生成的image文件
右键镜像 创建容器
点击确认即可运行
写到最后服务器上暴露2375端口很容易被黑,我尝试了3台服务器都被黑了,然后内存莫名其秒的高,cpu也很高,一直在像外传输数据,只能重装系统