阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Dockerfile创建镜像模板详解

446次阅读
没有评论

共计 2936 个字符,预计需要花费 8 分钟才能阅读完成。

Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockfile 快速创建自定义的镜像。Dockerfile 是由一行行的命令语句组成,并且支持以 #开头的注释行。

# 一般而言,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动是执行的指令。
模板如下:

#This dockerfile uses the Ubuntu image
# 指定基于的基础镜像, 可以使用多个 FROM 指令,每个镜像一次
#FROM <image> 或 FROM <image>:<tag>

#MAINTAINER 指定维护者信息
#MAINTAINER UserName <cheng@xxxx.com>

#ENV 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。
#ENV <key> <value>

#RUN 镜像的操作指令
# 格式为 RUN <command> 或 RUN [“executable”,”param1″,”param2″], 前者将在 shell 终端中运行命令,即 /bin/sh -c; 后者则可使用 exec 执行。

# 复制本地主机的 <src>(为 Docker 所在目录的相对路径,文件或目录)为容器中的 <dest>。目标路径不存在是,会自动创建。当使用本地目录为源目录是,推荐使用 COPY。
#COPY <src> <dest>

#ENTRYPOINT, 有两种格式
#1.ENTRYPOINT [“executable”,”param1″,”param2″]
#2.ENTRYPOINT command param1 param2(shell 中执行)
# 每个 Dockerfile 只能有一个 ENTRYPOINT, 当指定多个时,如果指定多个 ENTRYPOINT,只有最后一个生效。配置容器启动后执行的命令,并且不可被 docker run 提 > 供的参数覆盖。

#EXPOSE 告诉 Docker 服务端容器暴露的端口号,供互联系统使用。
#EXPOSE <port> [<port>…]

# 复制指定的 <src> 到容器中的 <dest>, 其中 <src> 可以使 Dockerfile 所在目录的一个相对路径(文件或目录); 也可以是一个 URL; 还可以是一个 tar 文件(自动解压为目录)。
#ADD <src> <dest>

#VOLUME 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
#VOLUME [“/data”]

#USER 指定运行容器时的用户名或 UID, 后续的 RUN 也会使用指定用户。要临时获取管理员权限的时候要使用 gosu,不推荐使用 sudo。如果不指定,容器默认是 root 运行。
#USER daemon

#WORKDIR 为后续的 RUN\CMD\ENTRYPOINT 指令配置工作目录,可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。
#WORKDIR /path/to/workdir
# 例如:
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
# 则最终路径为 /a/b/c

#ONBUILD 配置为所创建的镜像作为其他新创建镜像的基础镜像时,所执行的操作指令。使用 ONBUILD 指令的镜像,推荐在标签中注明,例如:nginx:1.9.11-onbuild。
#ONBUILD [INSTRUCTION]

#CMD 容器启动时执行指令,支持三种格式
#1.CMD [“executable”,”param1″,”param2″]
#2.CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用
#3.CMD [“param1″,”param2”] 提供给 ENTRYPOINT 的默认参数
# 如果指定多条,只有最后一条会被执行,如果用户启动容器时指定了运行的命令,则会覆盖掉 CMD 指定的命令。

举个例子:
vi Dockerfile
#This dockerfile uses the pagekit
FROM ubuntu:trusty
MAINTAINER UserName<cheng@ule.com>
RUN apt-get update && \
apt-get -y install && \
nginx \
unzip \
wget \
ca-certificates \
php5 php5-fpm php5-cli php5-json php5-mysql php5-curl
ENV PAGEKIT_VERSION 1.0.2
RUN mkdir pagekit
WORKDIR /pagekit
VOLUME [“/pagekit/storage”, “/pagekit/app/cache”]
RUN wget https://github.com/pagekit/pagekit/releases/download/$PAGEKIT_VERSION/pagekit-$PAGEKIT_VERSION.zip -O /pagekit/pagekit.zip && \
unzip /pagekit/pagekit.zip && rm /pagekit/pagekit.zip
ADD nginx.conf /etc/nginx/nginx.conf
RUN chown -R wwwdata: /pagekit && \
apt-get autoremove wget unzip -y && \
apt-get autoclean -y && \
apt-get clean -y && \
rm -rf /varf/lib/apt/list/ /tmp/ /var/tmp/*
CMD [“sh”,”-c”,”service php5-fpm start && nginx”]

更多 Docker 相关教程见以下内容

Docker 安装应用 (CentOS 6.5_x64) https://www.linuxidc.com/Linux/2014-07/104595.htm
Ubuntu 16.04 服务器上配置使用 Docker  https://www.linuxidc.com/Linux/2017-06/145176.htm
Ubuntu 15.04 下安装 Docker  https://www.linuxidc.com/Linux/2015-07/120444.htm
Docker 安装实例 https://www.linuxidc.com/Linux/2017-04/142666.htm
Docker 创建基础镜像  https://www.linuxidc.com/Linux/2017-05/144112.htm
在 Ubuntu 15.04 上如何安装 Docker 及基本用法 https://www.linuxidc.com/Linux/2015-09/122885.htm
Ubuntu 16.04 上 Docker 使用手记 https://www.linuxidc.com/Linux/2016-12/138490.htm
使用 Docker 分分钟启动常用应用  https://www.linuxidc.com/Linux/2017-04/142649.htm
Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法  https://www.linuxidc.com/Linux/2017-05/143862.htm

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2936字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7992747
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...