编写Dockerfile
来源:互联网 发布:seo的意思 编辑:程序博客网 时间:2024/06/15 17:29
Dockerfile可以分为四个部分
- 基础镜像信息
- 维护者信息
- 镜像操作指令
- 容器启动时执行的指令
制作nginx镜像举例:
[root@docker ~]# mkdir -p /opt/docker-files/nginx/[root@docker ~]# cd !$cd /opt/docker-files/nginx/[root@docker nginx]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.30.tar.gz[root@docker nginx]# wget http://nginx.org/download/nginx-1.12.1.tar.gz[root@docker nginx]# vim Dockerfile# This is my first Dockerfile# Version 1.0# Author: zhaot# base imagesFROM centos:7.2.1511# MAINTAINERMAINTAINER zhaot# COMMANDADD pcre2-10.30.tar.gz /usr/local/srcADD nginx-1.12.1.tar.gz /usr/local/srcRUN yum install -y gcc gcc-c++ make openssl-develRUN useradd -s /bin/nologin -M wwwWORKDIR /usr/local/src/nginx-1.12.1RUN ./configure --user=www --group=www --with-http_ssl_module --with-pcre=/usr/local/src/pcre2-10.30 && make && make installRUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.confENV PATH /usr/local/nginx/sbin:$PATHEXPOSE 80CMD ["nginx"][root@docker nginx]# docker build -t nginx-test:v1 .
- COPY和ADD的区别
- COPY仅进行复制操作 - ADD如果是压缩文件,复制完之后自动解压;可ADD链接
- ENTRYPOINT和CMD的区别
- ENTRYPOINTAn ENTRYPOINT allows you to configure a container that will run as an executable.用法:ENTRYPOINT ["/bin/echo"] 那么docker build出来的镜像以后的容器功能就像一个/bin/echo程序,那么我可以这样用它docker run -it entrypoint “this is a test”多条ENTRYPOINT只会执行最后一条ENTRYPOINT设为[“/bin/sh -c”]时候运行的情况[root@docker ~]# docker run -it entrypoint /bin/bash root@4c8549e7ce3e:/# ps PID TTY TIME CMD 1 ? 00:00:00 sh 19 ? 00:00:00 ps - CMDThe main purpose of a CMD is to provide defaults for an executing container.用法:CMD ["/bin/echo", "this is a echo test"] docker run之后会直接输出:this is a echo test,类似于开机启动但是如果docker run -it -d cmd /bin/bash,则会覆盖/bin/echo
- ONBUILD的用法
- ONBUILDONBUILD ADD . /appONBUILD RUN chown -R nginx:nginx /app在当前Dockerfile不生效,在FROM此镜像的下个镜像中生效
- VOLUME的用法
- VOLUMEVOLUME ["/var/lib/mysql"]将容器的/var/lib/mysql目录和宿主机进行映射,容器被删除,此目录不会消失
阅读全文
0 0
- Dockerfile编写
- 编写 DockerFile
- 编写Dockerfile
- Dockerfile编写技巧分享
- Dockerfile的编写
- DOCKERFILE编写需要注意事项
- Dockerfile编写总结
- Docker实战-编写Dockerfile
- Dockerfile 的编写实践
- Dockerfile文件编写官方文档
- 如何编写最佳的Dockerfile
- Dockerfile:tomcat镜像编写
- Dockerfile:mysql镜像编写
- Dockerfile:nginx镜像编写
- Dockerfile:RabbitMQ镜像编写
- Dockerfile:redis镜像编写
- 脉冲云在线指定Dockerfile文件--如何编写Dockerfile文件
- 3.docker学习笔记:编写Dockerfile文件
- 高斯函数积分运算 + 指数函数积分计算
- android学习(二)
- 基本光照
- Linux 条件判断式
- PLSQL连Oracle数据库Could not load "……\bin\oci.dll"
- 编写Dockerfile
- Centos7使用yum安装程序软件时提示未找到安装包解决方法
- 分布式与集群
- Eclipse默认用外部浏览器打开Web应用
- js去空格多种方式
- 基于Redis实现分布式锁
- 人脸旋转归一化 (根据特征点定位,dlib+opencv)
- 替换空格
- 阿里云Server2012 IIS8.0 404.17错误 解决方案