type
status
date
summary
slug
tags
category
password
icon

Dockerfile简单介绍

组成部分
部分
命令
基础镜像信息
FROM
维护者信息
MAINTAINER
镜像操作指令
RUN,COPY,ADD,EXPOSE,WORKDIR,ONBUILD,VOLUME,USER等
容器启动时执行指令
CMD、ENTRYPOINT
各命令详解
FROM
指定哪种镜像作为新镜像的基础镜像,如:
MAINTAINER
指明该镜像的作者和其电子邮件,如:
RUN
在新镜像内部执行的命令,比如安装一些软件、配置一些基础环境(可使用\来换行)如:
也可以使用exec格式RUN ["executable", "param1", "param2"]的命令,如:
要注意的是,executable是命令,后面的param是参数
COPY
将主机的文件复制到镜像内,如果目的位置不存在,Docker会自动创建所有需要的目录结构,但是它只是单纯的复制,并不会去做文件提取和解压工作。如:
注意:需要复制的目录一定要放在Dockerfile文件的同级目录下
ADD
将主机的文件复制到镜像中,跟COPY一样,限制条件和使用方式都一样,如:
EXPOSE
暴露镜像的端口供主机做映射,启动镜像时,使用-P参数来讲镜像端口与宿主机的随机端口做映射。使用方式(可指定多个):
WORKDIR
在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录。如
最终会在/usr/local/webservice/目录下生成text.txt文件
ONBUILD
当一个包含ONBUILD命令的镜像被用作其他镜像的基础镜像时(比如用户的镜像需要从某为准备好的位置添加源代码,或者用户需要执行特定于构建镜像的环境的构建脚本),该命令就会执行。
如创建镜像image-A
然后创建镜像image-B,指定image-A为基础镜像,如
然后在构建image-B的时候,日志上显示如下:
USER
指定该镜像以什么样的用户去执行,如:
VOLUME
用来向基于镜像创建的容器添加卷。比如你可以将mongodb镜像中存储数据的data文件指定为主机的某个文件。(容器内部建议不要存储任何数据)
如:
注意: VOLUME 主机目录 容器目录
CMD
容器启动时需要执行的命令,如:
同样可以使用exec语法,如
当有多个CMD的时候,只有最后一个生效。
ENTRYPOINT
作用和用法和CMD一模一样
CMD和ENTRYPOINT的区别
敲黑板!!!非常重要
一定要注意!
一定要注意!
一定要注意
CMD的命令会被 docker run 的命令覆盖而ENTRYPOINT不会
CMD和ENTRYPOINT都存在时,CMD的指令变成了ENTRYPOINT的参数,并且此CMD提供的参数会被 docker run 后面的命令覆盖,如:
之后启动构建之后的容器
docker run -ti image
输出“hello i am docker”
使用docker run -ti image world
输出“hello i am world”
  • 创建centos中文镜像
 

docker-compose用法

  • yml示例
  • 命令
GitSip应答消息状态码
zoehuawang
zoehuawang
一个普通的干饭人🍚
公告
type
status
date
summary
slug
tags
category
password
icon
🎉zoehuawnag , 欢迎关注🎉