Docker docker commit 和 Dockerfile

发布于:2021-07-28 01:28:54

?


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


?


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


[root@docker ~]# docker commit -a "syztoo" -m "change index.html" web syztoo/nginx:v1

参数
-a 记录提交作者
-m 记录修改信息

[root@docker ~]# docker commit -a "syztoo" -m "change index.html" web syztoo/nginx:v1
sha256:3755184b24f3a7390a1709fe176c6ebc6449d79e2d3da84969da2e8bb34ca219
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
syztoo/nginx v1 3755184b24f3 8 seconds ago 109MB
nginx latest 881bd08c0b08 2 weeks ago 109MB

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


?
?
Dockerfile

?


举个栗子


使用Dockerfile创建tomcat镜像


?


1.相关文件准备


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

?Dockerfile文件内容


FROM centos

MAINTAINER syztoo
LABEL version="1.0"
ADD jdk1.8.0_201 /usr/local/jdk1.8
ADD apache-tomcat-9.0.17 /usr/local/tomcat

ENV JAVA_HOME /usr/local/jdk1.8
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

EXPOSE 8080

CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

FROM 指定基础镜像
MAINTAINER 指定作者
LABEL 指定标签信息
USER 设置容器运行时的用户
RUN 运行制定命令
&& 支持换行
ADD 添加文件到镜像中
ENV 设置环境变量
VOLUME 设置文件挂载
EXPOSE 指定容器运行时开放的端口
CMD 设置容器运行时启动的命令

?


2.构建镜像


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

?


3.查看并运行


[root@docker tomcat]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_tomcat latest 69eff99fb3ab 30 minutes ago 614MB

[root@docker tomcat]# docker run --name Mytomcat -d -p 8080:8080 centos_tomcat

?

相关推荐

最新更新

猜你喜欢