docker build命令详解_源码时代Java干货分享|手把手教你用maven构建docker镜像

一原理分析

2260de7ba3efd7e0e176a59b09b8a903.png

由于我们开发pc上面没有docker,所以没办法直接打包镜像,所以要调用远程主机docker进行。并且远程主机docker默认不支持远程访问,所以需要开启远程。然后我们在项目中以docker maven插件方式进行打包镜像。

具体步骤如下:

1 远程主机docker支持远程访问

2 本地项目配置maven docker插件,并允许打包镜像

二远程主机docker支持远程访问

vi /lib/systemd/system/docker.service

其中ExecStart=后添加配置-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

修改后如下(2)刷新配置,重启服务

systemctl daemon-reload

systemctl restart docker

docker start registry

172.16.4.194:2375

防火墙对该端口放行

firewall-cmd --permanent --zone=public --add-port=2375/tcp

systemctl restart firewalld

12979cecfdfea6146a95f90ef33f2306.png

三本地项目配置maven docker插件,并允许打包镜像

3.1 配置docker maven插件

<build>
    <finalName>eureka</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!--这里写上main方法所在类的路径-->
<configuration>
                <mainClass>cn.itsource.hrm.EurekaServer7001Application</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!--docker的maven插件,官网: https://github.com/spotify/docker‐maven‐plugin-->
<plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.13</version>
            <configuration>
                <imageName>172.16.4.194:5000/${project.artifactId}:${project.version}</imageName>
                <baseImage>jdk1.8</baseImage>
                <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}
                        </directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
                <dockerHost>http://172.16.4.194:2375</dockerHost>
            </configuration>
        </plugin>
    </plugins>
  </build>

以上配置会自动生成Dockerfile

440794e57906a35e5e815af879964e72.png

FROM jdk1.8

ADD app.jar /

ENTRYPOINT ["java","‐jar","/app.jar"]

3.2 打包镜像并运行容器

3.2.1 打包

在windows的命令提示符下,进入工程hrm_eureka_7001所在的目录

进入Eureka所在的目录,输入以下命令,进行打包和上传镜像

mvn docker:build ‐DpushImage

3.2.2 查看镜像

进入宿主机 , 查看镜像

3017c47faa26b808cd8bfb169f84ce69.png

输出如上内容,表示微服务已经做成镜像

浏览器访问 http://192.168.184.141:5000/v2/_catalog,输出

{"repositories":["hrm_eureka"]}

3.2.3 启动容器

docker run ‐di ‐‐name=eureka ‐p 7001:7001

192.168.184.141:5000/hrm_eureka:1.0‐SNAPSHO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值