Dockerfile 的基本使用初体验

发布于 2021-05-26 12:08:04 字数 1073 浏览 1137 评论 0

mkdir -p /opt/dockerfile/centos6.9_sshd

vim Dockerfile

# Centos6.9-sshdv1.0
# 第一个非注释行必须以FROM开头
FROM centos:6.9
RUN yum install -y openssh-server
RUN /etc/init.d/sshd start && /etc/init.d/sshd stop && echo "123456" | passwd root stdin
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]

使用:
docker build -t "centos6.9-sshd:v1.0" ./

FROM:基础镜像

语法有两种语法

方法一:FROM centos:6.9
方法二(更安全):FROM centos@imageID

RUN:构建镜像过程中运行的命令

dockerfile每执行一条语句就会创建一个临时容器,这些临时容器后期可以用以调试。
这些临时镜像是不能删除的。因为会有依赖问题。
所以能写在一行就尽量写在一行,避免创建过多的临时容器。多个命令之间用&&连接

RUN也有两种语法:
第一种(常用):运行bash命令(yum install -y openssh-server)
第二种:[命令,第一个参数,第二个参数,......]

EXPOSE:向外暴露的端口

CMD(最后出现):使用镜像启动容器时默认运行的命令

COPY:将宿主机dockerfile所在目录下的文件拷贝到容器的知道目录下(支持通配符)。如果拷贝的是目录,只拷贝目录下的子文件

ADD:将宿主机dockerfile目录下的文件拷贝到容器内,如果是压缩文件会自动解压( .tar.gz/.tar.bz2/.tar.xz/.tar ),可以指定源为url

VOLUME:制作容器时候设置好数据卷,启动容器的时候就不需要-v配置数据卷了

WORKDIR:切换目录

ENV:声明环境变量

USER:切换用户

ENTRYPOINT(最后出现):CMD可以被启动容器时指定的命令替换,而ENTRYPOINT不能被替换

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84959 人气
更多

推荐作者

花开柳相依

文章 0 评论 0

zyhello

文章 0 评论 0

故友

文章 0 评论 0

对风讲故事

文章 0 评论 0

Oo萌小芽oO

文章 0 评论 0

梦明

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文