千家信息网

Docker中Dockerfile怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了Docker中Dockerfile怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Dockerfile文件的说明
千家信息网最后更新 2026年11月01日Docker中Dockerfile怎么用

这篇文章主要介绍了Docker中Dockerfile怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Dockerfile文件的说明:

格式:

INSTRUCTION arguments

虽然指令忽略大小写,但建议用大写

# 是注释

MAINTAINER命令:

MAINTAINER命令用来指定维护者的姓名和联系方式

FROM命令:

FROM /:

这个是设置基本的镜像,为后续的命令使用,所以应该作为Dockerfile的第一条指令

比如:

FROM centos6-base

RUN 命令:

会上面FROM 指定的镜像里执行任何命令,然后提交(commit)结果,提交的镜像会在后面继续用到

格式:

RUN (这个命令运行一个shell中 - '/bin/sh -c')

或:

RUN ["executable", "param1", "param2"]

RUN 命令等价于:

docker run image_name command

CMD and ENTRYPOINT

命令设置在容器启动时执行命令

ENTRYPOINT,表示镜像在初始化时需要执行的命令,不可被重写覆盖,需谨记

CMD,表示镜像运行默认参数,可被重写覆盖

ENTRYPOINT/CMD都只能在文件中存在一次,并且最后一个生效 多个存在,只有最后一个生效,其它无效!

需要初始化运行多个命令,彼此之间可以使用 && 隔开,但最后一个须要为无限运行的命令,需切记!

ENTRYPOINT/CMD,一般两者可以配合使用,比如:

ENTRYPOINT ["/usr/sbin/sshd"]

CMD ["-D"]

** 在Docker daemon模式下,无论你是使用ENTRYPOINT,还是CMD,最后的命令,一定要是当前进程需要一直运行的,才能够防容器退出。***

以下无效方式:

ENTRYPOINT service tomcat7 start #运行几秒钟之后,容器就会退出

CMD service tomcat7 start #运行几秒钟之后,容器就会退出

这样有效:

ENTRYPOINT service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out

# 或者

CMD service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out

这样也有效:

ENTRYPOINT ["/usr/sbin/sshd"]

CMD ["-D"]

USER 命令

比如指定 memcached 的运行用户,可以使用上面的 ENTRYPOINT or CMD来实现:

ENTRYPOINT ["memcached", "-u", "daemon"]

更好的方式:

ENTRYPOINT ["memcached"]

USER daemon

EXPOSE 命令

EXPOSE 命令可以设置一个端口在运行的镜像中暴露在外

在docker使用--link来链接两容器时会用到相关端口

EXPOSEd

ENV命令:

用于设置环境变更

使用此dockerfile生成的image新建container,可以通过 docker inspect CONTAINER ID 看到这个环境变量

也可以通过在docker run时设置或修改环境变量

ADD 命令:

从src复制文件到container的dest路径:

ADD

是相对被构建的源目录的相对路径,可以是文件或目录的路径,也可以是一个远程的文件url

是container中的绝对路径

VOLUME 命令

VOLUME [""]

如:

VOLUME ["/data"]

创建一个挂载点用于共享目录

WORKDIR 命令

WORKDIR /path/to/workdir

配置RUN, CMD, ENTRYPOINT 命令设置当前工作路径

可以设置多次,如果是相对路径,则相对前一个 WORKDIR 命令

比如:

WORKDIR /a WORKDIR b WORKDIR c RUN pwd

其实是在 /a/b/c 下执行 pwd

Dockerfile文件到此介绍完毕。

下面是一个完整的Dockerfile文件

#DockerfileFROM centos6-baseMAINTAINER zhou_mfk RUN ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_keyRUN ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_keyRUN sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshdRUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.sshEXPOSE 22RUN echo 'root:redhat' | chpasswdRUN yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6RUN yum install tar gzip gcc vim wget -yENV LANG en_US.UTF-8ENV LC_ALL en_US.UTF-8CMD /usr/sbin/sshd -D#End

感谢你能够认真阅读完这篇文章,希望小编分享的"Docker中Dockerfile怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

命令 运行 文件 路径 镜像 容器 篇文章 方式 环境 有效 变量 可以通过 多个 指令 格式 目录 端口 之间 价值 兴趣 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 为想互联网科技怎么样 高科技互联网 国智互联网科技 互联网科技公司华为 互联网科技行业发展 与互联网科技公司 互联网科技排名 奇酷互联网络科技公司 互联网科技小额贷款 四川狮子座互联网科技 互联网科技创新企业排名 老年人脱离互联网科技的作文 恒银科技与互联网金融 成都互联网科技公司100强 互联网金融中的现代科技 昭通互联网科技选哪家 速维有品互联网信息科技(苏州)有限公司 广东工业互联网大赛深圳学泰科技 湖北辰鑫科技互联网 万易互联网科技有限公司 安控科技rtu产品工业互联网 新兴科技互联网创新大赛颁奖典礼 阿里互联网科技企业 本届互联网大会上的黑科技 世界互联网科技成果奖 北京互联网科技类企业分布 米泉互联网科技专业怎么样 绵阳真晨互联网科技有限公司 互联网科技创新方面的资料
0