1、基于运行的容器创建:
docker container commit [options]
-a, --author="": 作者信息;
-c, --change=[] : 提交的时候执行Dockerfile指令
-m, --message= "": 提交消息;
-p, --pause=true: 提交时暂停容器运行。
使用该命令创建一个新镜像:
docker container commit -m "add a new file" -a "hjq" 15d9591b68cb test:0.1
15d9591b68cb 为容器的id test:0.1为创建容器的名称和tag
2、基于dockerfile创建(tomcat环境的镜像)
1、将下载好的jdk和tomcat传到虚机上并解压,
2、写Dockerfile文件
Dockerfile文件:
FROM centos
MAINTAINER hjq
RUN mkdir -p /usr/local/java
RUN mkdir -p /usr/local/tomcat
COPY apache-tomcat-8.5.8 /usr/local/tomcat
COPY jdk1.8.0_221 /usr/local/java
ENV JAVA_HOME=/usr/local/java
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$PATH$JAVA_HOME/bin
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
根据Dockerfile文件,生成镜像:-t 后面跟镜像名称
docker build -t centos_tomcat .
运行生成的镜像:--name后面跟生成的容器名称,再后面是对应的镜像名称,-d后台运行, -p映射端口
docker run -d -p 8080:8080 --name Icentos1 centos_tomcat
命令解释:
FROM :指定所创建镜像的基础镜像。
MAINTAINER :设置作者信息
RUN :运行指定命令
COPY :复制内容到镜像
ENV :指定环境变量, 在镜像生成过程中会被后续RUN指令使用, 在镜像启动的容器中也会存在。
EXPOSE :声明镜像内服务监听的端口
CMD :CMD 指令用来指定启动容器时默认执行的命令
3、基于模板创建:
可以从https://wiki.openvz.org/Download/template/precreated网站下载一个模板
cat centos-6-x86-minimal.tar.gz | docker import - centos6