自己做热图的网站,做建筑的网站,门户网站制作价格表,主题网站界面设计Dockerfile是用来快速创建自定义镜像的一种文本格式的配置文件#xff0c;在持续集成和持续部署时#xff0c;需要使用Dockerfile生成相关应用程序的镜像。
Dockerfile常用命令
FROM#xff1a;继承基础镜像MAINTAINER#xff1a;镜像制作作者的信息#xff0c;已弃用在持续集成和持续部署时需要使用Dockerfile生成相关应用程序的镜像。
Dockerfile常用命令
FROM继承基础镜像MAINTAINER镜像制作作者的信息已弃用使用LABEL替代LABELkv形式将一些元数据添加至镜像RUN用来执行shell命令EXPOSE暴露端口号CMD启动容器默认执行的命令会被覆盖ENTRYPOINT启动容器真正执行的命令不会被覆盖VOLUME创建挂载点ENV配置环境变量ADD复制文件到容器一般复制文件压缩包自动解压COPY复制文件到容器一般复制目录WORKDIR设置容器的工作目录USER容器使用的用户ARG设置编译镜像时传入的参数
Dockerfile样例
FROM {image_name}:{image_tag} # 指定基础镜像
# MAINTAINER {userinfo} # 维护人信息
LABEL {key} {value} # 比如设置为 maintainer author
USER {username} # 指定 RUN、CMD 或 ENTRYPOINT 运行时使用的用户
WORKDIR {workdir} # 为后续 RUN、CMD 或 ENTRYPOINT 运行指定工作目录
ENV {key} {value} # 为后续的 RUN 指令提供一个环境变量
RUN {bash command} # 要执行的命令RUN 一次镜像叠加一次大小多个命令可以用 连接以免镜像太大ADD {local_file|dir} {container_dir} # 将本地文件/目录拷贝到容器的某个目录里local_file|dir 可以是本地文件也可以是一个 URL
COPY {local_file} {container_file} # 将本地文件拷贝到容器不支持 URLEXPOSE {ports} # 指定要映射的端口可以写多个。需配合 -P 参数使用即启动容器时加上 -P 参数如果想知道你个具体的映射端口可以用 -p 指定
VOLUME [{local_dir}] # 创建一个可以从本机或其他容器挂载的挂载点CMD [command, param1, param2] # 指定容器启动时用到的命令只能有一条
ENTRYPOINT [command, param1, param2] # 指定容器启动时用到的命令类似 CMD只能写一条不同的是CMD 可以被 docker run 指令覆盖而 ENTRYPOINT 不可以被覆盖
Dockerfile 实践
# vim dockerfile## 设置基础镜像为CentOS
FROM centos:7
# 设置作者
LABEL user yeweijie
# 安装必要工具
RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel
# 安装Nginx
ADD http://nginx.org/download/nginx-1.8.0.tar.gz .
RUN tar -xf nginx-1.8.0.tar.gz
RUN mkdir -p /usr/local/nginx
RUN cd nginx-1.8.0 ./configure --prefix/usr/local/nginx make make install
RUN rm -fv /usr/local/nginx/conf/nginx.conf
ADD http://www.apelearn.com/study_v2/.nginx_conf /usr/local/nginx/conf/nginx.conf
# 映射端口
EXPOSE 80
# 设置挂载点
VOLUME [/usr/local/nginx/html]
# 设置容器启动时要执行的指令
ENTRYPOINT /usr/local/nginx/sbin/nginx tail -f /usr/local/nginx/logs/nginx_error.log docker build命令样例
docker build -f /path/to/Dockerfile -t {iamge_name}:{image_tag} {workdir}
# -f指定要使用的 Dockerfile 文件路径
# -t 设置镜像tag
# workdir指定当前命令运行的工作目录
构建镜像 docker build –f dockerfile -t centos7_nginx:test . 使用刚打包的镜像运行一个docker
docker run -d --name nginx_img -p 36128:80 centos7_nginx:test bash 查看镜像细节
docker inspect centos7_nginx:test Docker Build Cache 缓存清理 Docker 18.09 引入了 BuildKit 提升了构建过程的性能、安全、存储管理等能力。
docker system df 命令类似于 Linux上的 df 命令用于查看 Docker 的磁盘使用情况 Images 所有镜像占用的空间包括拉取下来的镜像和本地构建的Containers运行的容器占用的空间表示每个容器的读写层的空间Local Volumes容器挂载本地数据卷的空间Build Cache 镜像构建过程中产生的缓存空间只有在使用 BuildKit 时才有Docker 18.09 以后可用
最后 RECLAIMABLE 这列表示可回收的大小。
一键清理 Build Cache 缓存命令
docker builder prune
如果想要重新构建镜像需要用上面的命令做清理镜像缓存。