一般情况下并不推荐使用“docker commit”来构建镜像,而应该使用更灵活、更强大的Dockerfile来构建Docker镜像,这里就来说一下使用Dockerfile创建镜像,创建容器并运行的方法。
1 生成镜像
1.1 准备Dockerfile文件
准备Dockerfile文件内容如下:
FROM ubuntu:18.10
#Ingrediten:
# jdk-8u162-linux-x64.tar.gz
RUN buildDeps='gcc libc6 make ssh net-tools iputils-ping git curl telnet vim yum' \
&& apt-get update \
&& apt-get install -y $buildDeps \
&& mkdir -p /opt/java/
COPY ./jdk-8u162-linux-x64.tar.gz /opt/java/
RUN cd /opt/java/ \
&& tar -zxvf jdk-8u162-linux-x64.tar.gz
ENV JAVA_HOME=/opt/java/jdk1.8.0_162
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar
由于创建过程用到了java文件,这里要将注意这里要将java文件和Dockerfile文件放到同一个目录下:
Dockerfile
jdk-8u162-linux-x64.tar.gz
1.2 执行Docker命令创建镜像
可以参考docker build命令详解。
在Dockerfile文件这个目录下执行命令:
docker build -t myubuntu:v1 .
命令介绍:
docker:docker命令。
build:编译。
-t:镜像的名字及tag,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个tag,参考docker build命令详解。
myubuntu:生成镜像的名称。
v1:生成镜像的版本号。
.:点符号“.”表示的意思是,指定镜像构建过程中的上下文环境的目录,可以参考docker build 命令后 . 号的意思这篇文章。
1.3 查看生成的镜像
docker images
1.4 创建容器并运行
使用镜像“myubuntu:v8”以交互模式启动一个容器,将其命名为“myubuntu_test”,在容器内执行“/bin/bash”,而且绑定容器的 80 端口,并将其映射到本地主机 127.0.0.1 的 8111 端口上:
docker run -it -p 127.0.0.1:8111:80 --name myubuntu_test myubuntu:v8 /bin/bash
当然,也可以以后台模式启动一个容器:
docker run -p 127.0.0.1:8111:80 -d --name myubuntu_test myubuntu:v8
然后在登录到容器中:
docker run -it myubuntu_test /bin/bash
1.5 查看容器
查看运行中的容器:
docker ps
查看所有容器:
docker ps -a
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9491