注明:当前文档内容来源于51cto课堂‘宽哥’杜宽学习课程。
1. Dokcerfile 制作镜像最基本的编写
FROM centos:7
# 历史版本设置作者名字字段为MINTAINER
LABEL key="yjc"
RUN useradd yjc
docker build -t cenots:user .
注意:执行docker命令时最后有个‘点’ 且需要再当前目录下执行。
2.Dockerfile基础命令
#暴露端口
EXPOSE 999:80
# 启动容器默认执行的命令,会被覆盖。
CMD "echo 123"
# docker run -it -rm centos:user bash 则bash会把echo 123 覆盖
#启动容器真正执行的明林,不会被覆盖
ENTRYPOINT [ "executable" ]
#一般拷贝文件,压缩包自动解压,切可以添加远程文件
ADD source dest
#复制文件到容器,一般拷贝目录
COPY source dest
#设置容器的工作目录
WORKDIR /the/workdir/path
#容器的使用用户
USER daemon
#设置编译镜像时传入的参数
ARG name
#配置环境变量
ENV key=value
3.Docker镜像大小的优化
1).使用较小的基础镜像例如: alpine
`FROM alpine:3.14`
2).多阶段构建懿旨构建基础编译环境与生成应用镜像过程分开
#例:使用go语言构建hello word
# build step
FROM golang:1.14.4-alpine as builder
WORKDIR /the/workdir/path
COPY hw.go /opt
RUN go build /opt/hw.go
#生成应用镜像的过程
FROM alpine:3.12
COPY --from=builder /opt/hw .
CMD [ "./hw" ]