docker2

自动化镜像

dockerfile

  1. 使用dockerfile可以自动化的创建docker镜像

  2. docker 命令:

    docker images -a:显示所有镜像,包括失败的镜像
    docker image prune:清除失败的镜像缓存
    docker image prune -a:清除所有未被容器使用的镜像;极度危险!!!
    
  3. 语法:

    FROM        要使用的基础镜像
    RUN         构建镜像时要执行的操作
    CMD         运行镜像时,默认执行的命令
    ADD         宿主机的文件添加到到容器中,tar包可自动解压
    MAINTAINER  指定维护者信息
    LABEL       描述,标签
    WORKDIR     指定工作目录,设定后,进入容器默认是在这个目录下
    VOLUME      设置卷,使用卷可以将容器中的目录内容持久化,卷路径在/var/lib/docker/volumes/;写绝对路径可以挂载宿主机目录至容器目录
    EXPOSE      可指定容器开放的端口,可启动容器时随机端口挂载到开放的端口
    COPY        复制宿主机的文件到容器中
    ENV         可设定环境变量,设定的变量可以在dockerfile中引用,而且会继承到容器中
    ENTRYPOINT  容器启动执行的命令,无法被替换,写在启动命令位置的字符串会被当成命令的参数
    
  4. 例:

    • 创建一个基础镜像:
      FROM scratch
      ADD alpine.tar.gz /
      CMD ["/bin/sh"]
      
    • 创建一个nginx 环境镜像
      FROM alpine:3.9
      RUN sed -i 's/dl-cdn.alpinelinux.org/   mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \
          apk update && \
          apk add nginx && \
          mkdir -p /run/nginx/
      CMD ["nginx","-g","daemon off;"]
      
    • 创建一个可道云的容器
      FROM alpine:3.9
      
      MAINTAINER YMC  
      
      LABEL maintainer="alpine nginx"
      
      RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \
          apk update && \
          apk add nginx php7-intl php7-openssl php7-pdo_mysql         php7-common php7-fpm php7-mysqlnd php7-mbstring php7-opcache        php7-session php7-gd php7-json php7 php7-iconv php7-curl        php7-pecl-igbinary php7-pecl-memcached php7-pdo php7-mysqli 
          
      WORKDIR /code   
      
      ADD www.conf /etc/php7/php-fpm.d/www.conf
      ADD default.conf /etc/nginx/conf.d/default.conf
      ADD code /code
      ADD init.sh /init.sh    
      
      EXPOSE 80/tcp       
      
      RUN mkdir -p /run/nginx
      RUN chown -R nginx:nginx /code  
      
      ENTRYPOINT ["/bin/sh","/init.sh"]
      
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容