在未安装docker环境的windows系统上将springboot项目镜像推送到远程主机

一,修改pom文件
在pom.xml文件中添加以下信息:
<plugins>

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>

<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>

<imageName>{docker.image.prefix}/{project.artifactId}</imageName>

<dockerDirectory>{project.basedir}/src/main/docker</dockerDirectory> <skipDockerBuild>false</skipDockerBuild> <resources> <resource> <targetPath>/</targetPath> <directory>{project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>

<dockerHost>http://192.168.12.145:2375</dockerHost>
</configuration>
</plugin>
</plugins>

二,配置好Dockerfile文件

指定基础镜像

FROM java:8

维护者信息

MAINTAINER LiXiang

指定容器挂载为匿名卷

VOLUME /tmp

设置时区

RUN echo 'Asia/Shanghai' > /etc/timezone

创建jar包目录

RUN mkdir -p /usr/local/app

复制jar包到容器

COPY target/sscm-eureka-server-1.0.0.jar /usr/local/app/sscm-eureka-server.jar

COPY sscm-eureka-server-1.0.0.jar app.jar

bash方式执行,使jar包可访问

RUN bash -c "touch /usr/local/app/sscm-eureka-server.jar"

声明运行时容器提供服务端口

EXPOSE 8761

指定容器启动程序及参数

ENTRYPOINT ["java","-jar","-noverify","-Xms256M","-Xmx256m","-Xmn32M","-Xss256K","/usr/local/app/sscm-eureka-server.jar"]

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

三,开启远程主机docker远程访问权限
想要开启远程访问,就需要修改下面这个配置文件
vim /usr/lib/systemd/system/docker.service

1,在该文件[services]下增加以下配置:
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
增加完后保存

2,重启服务
systemctl daemon-reload
systemctl restart docker
3,开启防火墙访问权限

以下功能基于您拥有root用户权限
安装:
sudo yum install firewalld firewall-config -y
1
启动、停止、禁用、启用
查看状态:
systemctl status firewalld
1
启动:
systemctl start firewalld
1
停止:
systemctl stop firewalld
1
禁用:
systemctl disable firewalld
1
启用:
systemctl enable firewalld
1
开放端口区间
firewall-cmd --permanent --zone=public --add-port=100-500/tcp
firewall-cmd --permanent --zone=public --add-port=100-500/udp
firewall-cmd --reload
1
2
3
查看开放的端口
firewall-cmd --zone=public --list-ports
1
查看还有哪些服务可以打开

firewall-cmd --get-services
1
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
1
重新载入
firewall-cmd --reload
1
查看
firewall-cmd --zone=public --query-port=80/tcp
1
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent

4,在本地使用maven打包命令
mvn clean package docker:build 即可将镜像推送至指定的主机

5,验证

1,打开本地浏览器输入:http://远程ip:2375,如果返回:{"message":"page not found"} 即表示远程端口开放成功
2,远程主机上使用docker images,如果在列表中出现了目标镜像,即表示远程推送成功。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容