Dockerfile
- docker镜像的制作就是创建一个名字为Dockerfile的文件,根据这个文件去制作镜像
Dockerfile文件结构
- 基础镜像信息,格式:FROM 基础镜像,可以有多条FROM命令,例子如下:
FROM ubuntu
- 维护者信息,格式:MAINTAINER 维护者名称 邮箱,例子如下:
MAINTAINER myName myName@163.com
镜像操作指令
- RUN:用于执行shell命令,RUN xxx相当于 /bin/sh -c “xxx”,制作镜像时会在容器中执行
- ENV:指定一个环境变量,后续可以被RUN使用,并在容器运行时保持
- ADD src dest:复制指定src到容器中的dest,src可以是Dockerfile所在目录的一个相对路径,也可以是一个URL,还可以是一个tar包,tar包会自动解压
- COPY src dest:复制本机的src(dockerfile所在目录的相对目录)到容器中的dest,复制本机目录时推荐使用COPY
- EXPOSE:将容器中的端口暴露出来,启动容器时还得做host-container的端口映射,如下将主机的33301和容器中的22端口进行映射:
docker run -p 127.0.0.1:33301:22 centos6-ssh
- ENTRYPOINT:container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条,ENTRYPOINT不会像CMD一样被启动容器时指定的命令替代掉
- VOLUME:在容器中创建一个目录,可以将宿主机文件夹或其他container的文件夹挂载到该目录上
- 格式为:VLOUME [“/data”]
- 在启动容器时可以将宿主机目录挂载上去,如:
docker run -v $HOSTPATH:$CONTAINERPATH
容器启动指令CMD,指定启动容器时执行的命令,如果指定了多条CMD命令,只有最后一条起作用,如果用户启动容器时指定了运行的命令,会覆盖掉CMD指定的命令