Dockerfile 的基本使用初体验
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论