DockerFile使用方法及注释

FROM 指明是基于那个镜像

LABEL 标签

RUN 构建镜像时运行的shell命令

COPY 复制文件到镜像中

ADD 解压压缩包并复制

ENV 设置环境变量

USER 指明运行RUN、CMD、ENTRYPOINT命令时的执行用户

EXPOSE 暴露容器运行的服务端口

WORKDIR 为RUN、CMD、COPY、ADD、ENTRYPOINT指定工作目录

CMD 运行容器时执行,多个只执行最后一个

FROM

指定基础镜像,在此镜像基础上修改数据构建新镜像,可以是本地仓库也可以是远程仓库

格式:FROM 【本地仓库、远程仓库】image 名字 (默认最新版本)或FROM image:tag(指定版本)

RUN

运行基础镜像支持的命令,可以使用多条,指令长可以使用反斜杠黄航

格式:RUN 命令command (-bin/sh -c)或 RUN“/bin/bash”,”-c”,”echo hello cillian”

COPY

复制本地文件到容器内,目标路径不存在会自动创建

格式:COPY cillian/test1 test

注意:这个功能只能用于构建linux容器的dockefile上支持,windows容器上不起作用,运维用户和组的概念在linux和windows之间没法转换,所以仅只用于基于linux系统的容器。

WORKDIR

类似cd命令,为RUN、CMD、ENTRYPOINT配置工作目录,可以使用多个WORKDIR命令,如果后续命令不是绝对路径,就是按照上一级路径的基础上执行

ENTRYPOINT

指定容器启动时执行的命令,多次设置只执行最后一次,被翻译为进入点,这个功能让它像一个可执行程序。

格式:ENTRYPOINT [“executable”, “param1”, “param2”]

例:ENTRYPOINT [“/usr/bin/ls”,“-a”]

CMD [“-l”]

或 ENTRYPOINT command param1 param2 (as a shell)

例:ENTERPOINT ls -l

EXPOSE

让容器在运行时,监听指定端口,默认TCP协议,会将容器中的端口映射为宿主机中的端口,通过宿主机ip和映射后的端口可以访问容器,因为可以避免容器每次运行时的ip随机生成不固定的问题。运行容器上加参数-p指定设置的端口,例如 -p 9001:80 容器80端口映射为宿主机9001端口

格式: EXPOSE port

ENV

在镜像中设置环境变量,设置之后RUN就可以使用这个环境变量

格式: ENV JAVA_HOME /opt/java

构建镜像命令
例: docker build -t cillian/docker -f /cillian/dockerfile

构建nginx镜像

FROM centos:7

LABEL maintainer www.baidu.com

RUN yum install -y gcc gcc-c++ make \

openssl-devel pcre-devel gd-devel \

iproute net-tools telnet wget curl && \

yum clean all && \

rm -rf /var/cache/yum/*

ADD nginx-1.15.5.tar.gz /

RUN cd nginx-1.15.5 && \

./configure --prefix=/usr/local/nginx \

--with-http_ssl_module \

--with-http_stub_status_module && \

make -j 4 && make install && \

mkdir /usr/local/nginx/conf/vhost && \

cd / && rm -rf nginx* && \

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ENV PATH $PATH:/usr/local/nginx/sbin

COPY nginx.conf /usr/local/nginx/conf/nginx.conf

WORKDIR /usr/local/nginx

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Dockerfile 是一种用于定义 Docker 镜像的文件格式,其包含了构建镜像所需的所有指令和配置信息。使用 Dockerfile 可以轻松地构建、配置和部署 Docker 镜像,同时也可以保证镜像的可重复性和可移植性。 以下是使用 Dockerfile 的一般步骤: 1. 创建一个新的目录并进入该目录。 2. 创建一个名为 Dockerfile文件。 3. 在 Dockerfile 编写指令和配置信息,包括基础镜像、软件包安装、文件复制、环境变量设置等。 4. 使用 docker build 命令构建镜像,其包括指定 Dockerfile 的路径和镜像的名称和版本号。 5. 镜像构建完成后,可以使用 docker run 命令运行该镜像。 6. 如果需要分享镜像,可以将其推送到 Docker Hub 或其他镜像仓库。 以下是一个简单的 Dockerfile 示例: ``` # 指定基础镜像 FROM ubuntu:latest # 更新软件包并安装 Apache RUN apt-get update && apt-get install -y apache2 # 复制本地文件到镜像 COPY index.html /var/www/html/ # 设置环境变量 ENV PORT 80 # 暴露端口 EXPOSE 80 # 启动 Apache 服务 CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] ``` 在上述 Dockerfile ,首先指定了基础镜像为最新版本的 Ubuntu,然后更新软件包并安装 Apache。接着复制本地的 index.html 文件到镜像,并设置环境变量和暴露端口。最后使用 CMD 指令启动 Apache 服务。 使用 docker build 命令构建镜像: ``` docker build -t my-apache-image:v1 . ``` 其 -t 参数用于指定镜像的名称和版本号,. 表示 Dockerfile 文件在当前目录下。 使用 docker run 命令运行镜像: ``` docker run -d -p 80:80 my-apache-image:v1 ``` 其 -d 参数用于后台运行容器,-p 参数用于映射主机端口和容器端口,my-apache-image:v1 表示运行的镜像名称和版本号。 使用 docker push 命令将镜像推送到 Docker Hub : ``` docker push my-apache-image:v1 ``` 其 my-apache-image:v1 表示需要推送的镜像名称和版本号。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

f4ck3sdn

初心:希望为更多人知识解惑

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值