构建docker 镜像 Dockerfile 构建

构建docker 镜像 Dockerfile 构建

docker build -f /path/to/a/Dockerfile .
-f 指定Dockerfile 文件目录 .代表当前目录
-t 指定构建镜像仓库和标签

Dockerfile 构建规则
- FROM 首行指定基础镜像信息(FROM 或 FROM:或FROM:)
- MAINTAINER 维护者信息
- RUN 镜像操作指令 (shell 格式 run command 或 exec 格式 run [“executable”,“param1”,“param2”])
- COPY 复制文件 (源路径 目标路径)
- ADD 高级复制文件 添加对url链接支持 (源路径 目标路径)
- ENV 设置环境变量 (ENG key=value)
- EXPOST 镜像设置监听端口 容器运行时监听 (EXPOSE port)
- VOLUME 创建挂载点 命令行启动方式(-v /home/xqh/myimage:/data 将容器data目录和/home/xqh/myimage 目录关联)
- WORKDIR 在容器内设置一个工作目录(WORKDIR path)
- USER 指定运行镜像所使用的用户(USER daemon)
- CMD 容器启动执行指定(CMD [“executable”,“param1”,“param2”]或者CMD [“param1”,“param2”]或者CMD command param1 param2)
- ENTRYPOINT 给容器配置一个可执行程序 (“executable”,“param1”,“param2"或者ENTRYPOINT command param1 param2) Dockerfile 文件中只能有一个ENTRYPOINT 命令
- LABEL 为镜像添加元数据(LABEL key=value) 例如:LABEL version=“1.0” description=“这是一个Web服务器” by=“IT笔录”
- ARG 在构建时设置的变量值 (ADR name =default value) 例如:ARG site
ARG build_user=IT笔录 构建时指定site 值和build_user 值 docker build --build-arg site=itiblu.com -t itbilu/test .
- ONBUILD 设置镜像触发器,构建的镜像被用于其他镜像的基础镜像时出触发(ONBUILD [INSTRUCTION])
- STOPSSIGNAL 设置停止容器所要发送的系统调用信号 (STOPSIGNAL signal)
- SHELL 设置执行命令,使用默认的shell类型(SHELL [“executable”,“parameters”])
实例:
FROM ubuntu:16.04
MAINTAINER zp
RUN apt-get update
RUN apt-get install -y nginx
RUN echo ‘Hello World’ \
> /var/www/html/index.html
ENTRYPOINT [”/usr/sbin/nginx"]
EXPOSE 80

构建:
docker build -t=“helloword/test” .

运行:
docker run -i -t helloword/test -g “daemon off;”
- 使用 c 将会将参数传递给 ENTRYPOINT 运行结果:/usr/sbin/nginx -g “daemon off;”

构建nginx 运行环境:

#指定基础镜像
FROM sameersbn/ubuntu:14.04.20161014
# 维护者信息
MAINTAINER zp
# 设置环境
ENV RTMP_VERSION=1.1.10 \
	NPS_VERSION=1.11.33.4 \
	LIBAV_VERSION=11.8 \
	NGINX_VERSION=1.10.1 \
	NGINX_USER=www-data \
	NGINX_SITECONF_DIR=/etc/nginx/sites-enabled \
	NGINX_LOG_DIR=/var/log/nginx \
	NGINX_TEMP_DIR=/var/lib/nginx \
	NGINX_SETUP_DIR=/var/cache/nginx

# 设置构建时变量,镜像建立完成后就失效
ARG BUILD_LIBAV=false
ARG WITH_DEBUG=false
ARG WITH_PAGESPEED=true
ARG WITH_RTMP=true

# 复制本地文件到容器目录中
COPY setup/ ${NGINX_SETUP_DIR}/
RUN bash ${NGINX_SETUP_DIR}/install.sh

# 复制本地配置文件到容器目录中
COPY nginx.conf /etc/nginx/nginx.conf
COPY entrypoint.sh /sbin/entrypoint.sh

# 运行指令
RUN chmod 755 /sbin/entrypoint.sh

# 允许指定的端口
EXPOSE 80/tcp 443/tcp 1935/tcp

# 指定网站目录挂载点
VOLUME ["${NGINX_SITECONF_DIR}"]

ENTRYPOINT ["/sbin/entrypoint.sh"]
CMD ["/usr/sbin/nginx"]

docker 命令

- docker search 搜索镜像
- docker pull 下载镜像
- docker attach attach 连接指定镜像
- docker logs 容器id 查看容器log日志
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值