Linux-SpringBoot整合Docker部署镜像时的DockerFile文件以及相关命令
一、DockerFile文件注:方式1 是我在SpringBoot整合Docker构建镜像时使用的DockerFile文件,可以自行修改。1、基于已有的JDK镜像对SpringBoot项目进行构建镜像#设置JDK镜像FROM openjdk:8-jdk-slimVOLUME /tmpMAINTAINER sunhui#设置时区RUN cp /usr/share/zon...
·
一、DockerFile文件
注:方式1 是我在SpringBoot整合Docker构建镜像时使用的DockerFile文件,可以自行修改。
1、基于已有的JDK镜像对SpringBoot项目进行构建镜像
#设置JDK镜像
FROM openjdk:8-jdk-slim
VOLUME /tmp
MAINTAINER sunhui
#设置时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
RUN echo $JAVA_OPTS
ADD task-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2、基于ubuntu 的镜像($app 此处为占位符号,替换为自己的spring boot 项目的jar)
FROM ubuntu:16.04
MAINTAINER sunhui
ADD jdk-8u151-linux-x64.tar.gz /usr/local/jdk8
ENV JAVA_HOME /usr/local/jdk8/jdk1.8.0_151
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH :$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin
ARG appADD $app app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
二、Docker命令及解释
- FROM:指定所创建镜像的基础镜像,本地没有就会去官方库下载
- MAINTAINER:作者信息
- RUN:运行指定命令。创建镜像的重点,每一个条RUN 的行为,就和手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后,提交这一层的修改,构成新的镜像。上面的写法有6个RUN语句,那就会创建6层镜像,结果就是产生非常臃肿、非常多层的镜像。所以当命令比较多时要用 \ 换行 和 && 连接符连接命令。用尽量少的RUN语句。上面就可以这样写:RUN apt-get update \ && apt-get install -y openssh-server…
- CMD:指定容器启动时默认执行的命令,每个Dockerfile文件只能有一条CMD命令,Docker 不是虚拟机,容器就是进程。既然是进程,那么在启动容器的时候,需要指定所运行的程序及参数。 CMD 指令就是用于指定默认的容器主进程的启动命令的。
- EXPOSE:声明镜像内服务所监听的端口
- ADD/COPY:复制文件
- ENTRYPOINT:指定镜像的默认入口命令。该命令会在容器启动时作为根命令执行,所有传入值作为该命令的参数。
- ENV:设置环境变量,无论是后面的其它指令,如 RUN ,还是运行时的应用,都可以直接使用这里定义的环境变量。
- ARG:指定一些镜像内使用的参数(例如版本号),在执行docker build命令时以–build-arg< varname>=< value>的格式传入。
- WORKDIR:指定工作目录
三、Linux中使用Docker命令构建SpringBoot镜像
准备工作,先在Linux系统中安装好Docker容器并启动,然后将制作好的DockerFile文件和SpringBoot的jar包放在同一目录下,切记不能放在根目录(走过坑),进入该目录进行构建镜像。
1、构建镜像命令:docker build -t 镜像名:版本号 .
示例:最后面有个点哦,指的是当前目录下的DockerFile文件,千万不能落下!
[root@izuf60j0xye9c3vxjqujjiz local]# docker build -t task:xpv2.0 .
2、查看镜像命令:docker images
[root@izuf60j0xye9c3vxjqujjiz local]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
task xpv2.0 ec7ca41b419b 24 hours ago 378 MB
ccr.ccs.tencentyun.com/linshang/task xpv1.1 d1211f22147e 25 hours ago 378 MB
task-svc v1.1 d1211f22147e 25 hours ago 378 MB
ccr.ccs.tencentyun.com/linshang/oauth test1.1 af93de61ae81 7 days ago 784 MB
docker.io/openjdk 8-jdk-slim e95346262d2e 2 weeks ago 284 MB
docker.io/openjdk 12.0.1-jdk-oraclelinux7 e92ef2c3a3dd 6 weeks ago 470 MB
docker.io/rabbitmq 3-management df6f26ea3e53 3 months ago 213 MB
docker.io/tomcat latest 5a069ba3df4d 3 months ago 465 MB
docker.io/redis latest a55fbf438dfd 4 months ago 95 MB
docker.io/mysql 5.5 4ee01d11a48b 4 months ago 205 MB
docker.io/mysql latest 7bb2586065cd 4 months ago 477 MB
docker.io/java 8 d23bdf5b1b1b 2 years ago 643 MB
3、复制一份修改标签供腾讯云用
[root@izuf60j0xye9c3vxjqujjiz local]# sudo docker tag 6dba9e8c6c6a ccr.ccs.tencentyun.com/linshang/card:test2.0
[root@izuf60j0xye9c3vxjqujjiz local]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ccr.ccs.tencentyun.com/linshang/task xpv2.0 ec7ca41b419b About an hour ago 378 MB
task xpv2.0 ec7ca41b419b About an hour ago 378 MB
ccr.ccs.tencentyun.com/linshang/task xpv1.1 d1211f22147e 2 hours ago 378 MB
task-svc v1.1 d1211f22147e 2 hours ago 378 MB
ccr.ccs.tencentyun.com/linshang/oauth test1.1 af93de61ae81 6 days ago 784 MB
docker.io/openjdk 8-jdk-slim e95346262d2e 2 weeks ago 284 MB
docker.io/openjdk 12.0.1-jdk-oraclelinux7 e92ef2c3a3dd 5 weeks ago 470 MB
docker.io/rabbitmq 3-management df6f26ea3e53 3 months ago 213 MB
docker.io/tomcat latest 5a069ba3df4d 3 months ago 465 MB
docker.io/redis latest a55fbf438dfd 4 months ago 95 MB
docker.io/mysql 5.5 4ee01d11a48b 4 months ago 205 MB
docker.io/mysql latest 7bb2586065cd 4 months ago 477 MB
docker.io/java 8 d23bdf5b1b1b 2 years ago 643 MB
4、将复制好的镜像上传至腾讯云Docker镜像仓库中,先登录,再push
[root@izuf60j0xye9c3vxjqujjiz local]# sudo docker login --username=用户名 ccr.ccs.tencentyun.com
输入密码后,进行push操作
[root@izuf60j0xye9c3vxjqujjiz local]# sudo docker push ccr.ccs.tencentyun.com/linshang/card:test2.0
5、登录到腾讯云服务器平台,查看Docker镜像仓库。
注意:这是本人的操作过程,根据自己的文件和参数自行修改!!!
更多推荐
已为社区贡献4条内容
所有评论(0)