Dockerfile // 就得是这个名字
FROM // 基于哪个镜像
WORKDIR // 接下来运行在哪个目录下
COPY 本地目录 目标目录 //
ADD // 和copy类似,但是可以接url,也会解压
RUN // 运行shell语句 容器构建的时候运行
CMD cat 1.txt // 运行shell语句 容器运行的时候运行,也可以写成列表
ENTRYPOINT // 和cmd类似, 如果e不是json形式 就以e为准,如果是就 e+c 拼接成shell
EXPOSE 5000 // 暴露端口
VOLUME 本地目录 目标目录 // 映射目录
ENV MYSQL_VERSION 5.6 // 指定环境变量
RUN apt-get install -y mysql-server="${MYSQL_VERSION }"
ARG // 参数,构建时生效,可以用来在创建image是命令上 传递参数
LABEL // 标签
ONBUILD ENV C=1000 // onbuild 作为基础镜像给别人用的时候 才会运行
STOPSINGNAL
HEALTHCHECK
SHELL /bin/bash
RUN: 执行命令并创建新的ImageLayer
CMD:设置容器启动后默认执行的命令和参数,如果docker run 指定了其他命令 cmd被忽略,如果定义了多个cmd只有最后一个执行
ENTRYPOINT: 设置容器启动时运行的命令, 让容器以应用程序或者服务的形式运行,不会被忽略一定会执行
例子
FROM golang:1.18.3
MAINTAINER wuheng
COPY ./file/gcc /usr/include
RUN ln -s /usr/include/libtaos.so.2.6.0.4 /usr/lib/libtaos.so.1
RUN ln -s /usr/lib/libtaos.so.1 /usr/lib/libtaos.so
ADD . $GOPATH/Quinoa
WORKDIR $GOPATH/Quinoa
RUN go build main.go
CMD ["./main", "-config", "beta", "-server", "page_conversion_rate"]```