当前位置:   article > 正文

Docker docker commit 和 Dockerfile_dockerfile和docker commit

dockerfile和docker commit

 

镜像分层堆叠存储,每一层在前一层的基础上进行修改;容器同样也是如此,以镜像为基础层,在其上加一层读写层用于交互。

 

有时候我们运行的容器可能在原有镜像的基础上做了一些修改,如果我们想将其保存起来,封装成为一个更新的镜像,Docker提供了 docker commit 命令。

  1. [root@docker ~]# docker commit -a "syztoo" -m "change index.html" web syztoo/nginx:v1
  2. 参数
  3. -a 记录提交作者
  4. -m 记录修改信息
  1. [root@docker ~]# docker commit -a "syztoo" -m "change index.html" web syztoo/nginx:v1
  2. sha256:3755184b24f3a7390a1709fe176c6ebc6449d79e2d3da84969da2e8bb34ca219
  3. [root@docker ~]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. syztoo/nginx v1 3755184b24f3 8 seconds ago 109MB
  6. nginx latest 881bd08c0b08 2 weeks ago 109MB

注意:由于 docker commit 的操作除了修改人知道作了何种改动以外,别人无从而知,而且由于命令的执行,还有额外一连串的文件被改动。所以一般情况下,慎用 docker commit 。

 

 

Dockerfile

 

举个栗子

使用Dockerfile创建tomcat镜像

 

1.相关文件准备

  1. [root@docker tomcat]# ls
  2. apache-tomcat-9.0.17 Dockerfile jdk1.8.0_201

 Dockerfile文件内容

  1. FROM centos
  2. MAINTAINER syztoo
  3. LABEL version="1.0"
  4. ADD jdk1.8.0_201 /usr/local/jdk1.8
  5. ADD apache-tomcat-9.0.17 /usr/local/tomcat
  6. ENV JAVA_HOME /usr/local/jdk1.8
  7. ENV CATALINA_HOME /usr/local/tomcat
  8. ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
  9. EXPOSE 8080
  10. CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
  1. FROM 指定基础镜像
  2. MAINTAINER 指定作者
  3. LABEL 指定标签信息
  4. USER 设置容器运行时的用户
  5. RUN 运行制定命令 \
  6. && 支持换行
  7. ADD 添加文件到镜像中
  8. ENV 设置环境变量
  9. VOLUME 设置文件挂载
  10. EXPOSE 指定容器运行时开放的端口
  11. CMD 设置容器运行时启动的命令

 

2.构建镜像

[root@docker tomcat]# docker build -t centos_tomcat .

 

3.查看并运行

  1. [root@docker tomcat]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. centos_tomcat latest 69eff99fb3ab 30 minutes ago 614MB
  4. [root@docker tomcat]# docker run --name Mytomcat -d -p 8080:8080 centos_tomcat

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/58130
推荐阅读
相关标签
  

闽ICP备14008679号