DockerFile:
# volume test
FROM centos
VOLUME [“/dataVolumeContainer1”,”/dataVolumeContainer2”]
CMD echo “finished,———success1”
CMD /bin/bash
等价于下面的命令:
docker run -it -v /host1:/dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos /bin/bash
docker build -f dockerFile路径 -t 生成的路径
docker build -f DockerFile -t lj/centos .
DockerFile关键字:
FROM:基础镜像,当前新镜像是基于哪个镜像的
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:容器运行时需要执行的命令
EXPOSE:当前容器对外暴露出的端口
WORKDIR:指定在创建容器后,终端默认登录进来的工作目录
ENV:用来在构建镜像过程中设置环境变量
ADD:拷贝+解压
COPY:直接拷贝
VOLUME:容器数据卷,用于数据保存和持久化工作
CMD:指定一个容器启动时要运行的命令,Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
ENTRYPOINT:类似于CMD,不会被替换,而是追加命令
ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父进程的onbuild被触发。
Dockerfile:
---
FROM centos
MAINTAINER lj<hitomli@163.com>
ENV MYPATH /usr/local
WWORKDIR $MYPATH
RUN run -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo “success—————ok“
CMD /bin/bash
---
构建镜像:
docker build -t 新镜像名字:TAG .
---
FROM centos
RUN yum install -y curl
CMD [“curl”, “-s”, “http://ip.cn”]
---
---
FROM centos
RUN yum install -y curl
ENTRYPOINT [ “curl”, “-s”, “http://ip.cn” ]
ONBUILD RUN echo “father onbuild———886”
---
Dockerfile 总结: