Springboot项目使用Idea直接生成docker镜像部署到Centos7.6

废话不多说,直接开干:

1、开放docker仓库访问地址;

#输入此命令设置docker.service的仓库访问端口,ExecStart项添加:-H tcp://0.0.0.0:2375
 vim /usr/lib/systemd/system/docker.service
#保存退出后输入命令重新加载配置
systemctl daemon-reload
#重启docker
systemctl restart docker
#请记得输入一下命令关闭centos的系统防火墙,否则永远访问不了
systemctl stop firewalld.service

2、Idea中安装docker插件;

File=>Setting=>plugins=>搜索docker=》install(安装)

3、创建DockerFile;

在项目根目录下创建DockerFile

#DockerFile内容
#基础镜像,如果本地没有,会从远程仓库拉取。
FROM java:8
#维护者信息
MAINTAINER rock <1539773555@qq.com>

#工作目录
#WORKDIR /opt/docker/penguin-log-web/

#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层,可以多个
VOLUME ["/tmp"]

#声明了容器应该打开的端口并没有实际上将它打开
EXPOSE 16060

#定义参数
#ARG JAR_FILE

## 将jar包添加到容器中并更名为app.jar
#ADD *.jar app.jar

#拷贝本地文件到镜像中#复制上下文目录下的target/demo-1.0.0.jar 到容器里
#COPY ${JAR_FILE} penguin-log-web.jar

#复制上下文目录下的target/demo-1.0.0.jar 到容器里
COPY target/yunxiao-web-api-0.0.1-SNAPSHOT.jar app.jar

#bash方式执行,使demo-1.0.0.jar可访问
#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /app.jar"

#指定容器启动时要执行的命令,但如果存在CMD指令,CMD中的参数会被附加到ENTRYPOINT指令的后面
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

#设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  && echo 'Asia/Shanghai' >/etc/timezone \

4、添加Maven插件支持打包docker镜像;

在pom.xml文件添加plugins节点配置打包docker镜像后推送的docker仓库地址:<dockerHost>http://192.168.1.209:2375</dockerHost>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version> 1.2.1</version>
                <executions>
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <imageName>${project.artifactId}</imageName>
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <dockerHost>http://192.168.1.209:2375</dockerHost>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

maven直接package打包则可以自动生成docker镜像并推送到配置的docker镜像仓库

可以在centos下输入命令:docker images 查看docker镜像是否上传成功

5、启动docker镜像测试;

#启动docker容器的命令
docker run -itd -p 16060:16060 --name testdemo yunxiao-web-api
#查看docker容器运行状态
docker ps

访问测试

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值