第三篇:Docker file基本编写

85 阅读1分钟

注明:当前文档内容来源于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" ]