编写dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#1.指定基础镜像,并且必须是第一条指令
FROM centos:7


#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /usr/java/openjdk-11/bin

#4.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相对路径
ADD openlogic-openjdk-11.0.21+9-linux-x64.tar.gz /usr/java/openjdk-11/bin

#5.设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

#6.配置环境变量
ENV JAVA_HOME=/usr/java/openjdk-11/bin/openlogic-openjdk-11.0.21+9-linux-x64/bin
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令
#CMD ["java","-version"]

打包

1
docker build -f Dockerfile  -t java-base-test:v0.0.0.2 .

运行

1
docker run -t -i java-base-test:v0.0.0.2 /bin/bash

验证

1
java --version

上传到公共仓库

1
2
3
docker login docker.xxx.com -u user -p pwd
docker tag java-base-test:v0.0.0.2 docker.xxx.com/xdr/java-base-test:v0.0.0.2
docker push docker.xxx.com/xdr/java-base-test:v0.0.0.2

引用

1. 使用 Dockerfile 定制镜像
2. docker从入门到实践