提示:以下是本篇文章正文内容,下面案例可供参考
一、制作jdk8镜像
下载jdk1.8
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
解压压缩包
[root@localhost docker_jdk]# ls
Dockerfile jdk1.8.0_201
Dockerfile
FROM centos:centos7
MAINTAINER sandishui
RUN mkdir /usr/local/jdk
WORKDIR /usr/local/jdk
ADD jdk1.8.0_201 /usr/local/jdk/jdk1.8.0_201
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_201
ENV JRE_HOME /usr/local/jdk/jdk1.8.0_201/jre
ENV PATH $JAVA_HOME/bin:$PATH
开始build
docker build -t jdk1.8 .
注意后面的点,点表示当前目录。
查看当前镜像
[root@localhost docker_jdk]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
image_jdk1.8 latest 04e6a53c5bbf About an hour ago 601 MB
docker.io/centos centos7 8652b9f0cb4c 2 months ago 204 MB
docker.io/hello-world latest bf756fb1ae65 13 months ago 13.3 kB
二、制作springBoot镜像
打包一个自己的springboot工程,保证本地能启动成功。
创建文件夹image_spring_boot
,并且放入文件
[root@localhost image_spring_boot]# ls
Dockerfile docker-hello-1.0-SNAPSHOT.jar
Dockerfile文件内容
FROM image_jdk1.8
MAINTAINER sandishui
RUN mkdir /usr/local/webapp
WORKDIR /usr/local/webapp
ADD docker-hello-1.0-SNAPSHOT.jar /usr/local/webapp
ENTRYPOINT ["nohup","java","-jar","docker-hello-1.0-SNAPSHOT.jar","&"]
在当前文件夹中执行
docker build -t spring_boot .
注意最后的点。表示当前目录
查看当前镜像
[root@localhost image_spring_boot]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
spring_boot latest c68c6aa2f2d0 23 minutes ago 618 MB
image_jdk1.8 latest 04e6a53c5bbf About an hour ago 601 MB
docker.io/centos centos7 8652b9f0cb4c 2 months ago 204 MB
docker.io/hello-world latest bf756fb1ae65 13 months ago 13.3 kB
启动springboot
docker run -itd -p 8080:8080 c68c6aa2f2d0
三、dockerfile命令
- FROM 基于**镜像
- MAINTAINER 镜像的维护的姓名和邮箱地址
- RUN 镜像构建时需要运行的命令
- WORKDIR 容器创建后,默认在的目录
- EXPOSE 当前容器对外暴露端口
- ENV 环境变量
- ADD 将宿主机目录下的文件cp到镜像中,ADD命令会自动解压压缩包
- VOLUME 容器数据卷,用于保存和持久化
- CMD 指定容器启动过程中需要运行的命令,注意:多条CMD命令,只有最后一条生效,CMD会被docker run 之后的参数替换
- ENTRYPOINT 执行容器启动过程中需要运行的命令,此命令会追加到docker run的参数后面