1. 编写一个能够构建java环境的镜像
#指定源镜像
FROM hoas/ubuntu:19081701
#说明维护人员 已被弃用,可使用 LABEL maintainer="SvenDowideit@home.org.au"代替
MAINTAINER HOAS zhangqingmu@yeah.net
# 增加源包到指定目录
ADD jdk-8u212-linux-x64.tar.gz /usr/local/
#配置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_212
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
1.1 放到指定目录后,运行命令 docker build ., 查看镜像 docker images
,发现新增了一个镜像,但是 REPOSITORY 和 TAG 都是 此时执行如下命令,可以得到jdk版本号,说明,docker容器内运行成功。
[root@hoas jdk8u212]# docker run 799fa2fe4d17 javac
[root@hoas jdk8u212]# docker run 799fa2fe4d17 java
[root@hoas jdk8u212]# docker run 799fa2fe4d17 java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
此时查看容器内部 (docker -i -t run 799fa2fe4d17 ), 使用 java javac java-version 命令,亦可操作,查看环境变量
root@2ff3616fcbb8:/usr/bin# env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/jdk1.8.0_212/bin
PWD=/usr/bin
JAVA_HOME=/usr/local/jdk1.8.0_212
SHLVL=1
HOME=/root
CLASSPATH=.:/usr/local/jdk1.8.0_212/lib/dt.jar:/usr/local/jdk1.8.0_212/lib/tools.jar
但是这里有个问题,REPOSITORY 和 TAG 都是 ,这是我们需要指定一个 tag来让我们更好的识别这个镜像,我们可以用之前学习的命令 docker tag 进行标签,运行镜像。
[root@hoas jdk8u212]# docker run -d -it hoas/jdk1.8:19081901 /bin/bash
创建容器的时候一定要使用 -it /bin/bash这种方式,要不然jdk的容器起不来。
1.2 放到指定目录后,运行命令 docker build -t, 查看镜像 docker images
在构建镜像时直接指定TAG是一个好的方法
[root@hoas jdk8u212]# docker build -t hoas/jdk1.8:19081901 .
2. 使用命令说明
-
docker run 运行容器:
-d: 后台方式运行容器。 -
docker build 运行容器:
-t: 指定容器名
-f: 指定构建文件名 Dockerfile