隨著Docker的廣泛應用,基礎鏡像在容器化應用中扮演著至關重要的角色。基礎鏡像的更新不僅能夠提供更好的應用性能,還能夠修復已知的安全漏洞,避免潛在的安全風險。
FROM alpine:3.11
RUN apk update && apk upgrade && \
apk add --no-cache bash git openssh
CMD ["/bin/bash"]
例如,在上述Dockerfile中使用Alpine Linux 3.11作為基礎鏡像,同時安裝了bash、git和openssh。如果你想要更新基礎鏡像到3.12,可以在Dockerfile中修改FROM語句:
FROM alpine:3.12
RUN apk update && apk upgrade && \
apk add --no-cache bash git openssh
CMD ["/bin/bash"]
然后重新構建鏡像:
docker build -t myimage .
當然,你還可以使用多階段構建來減小鏡像大小:
FROM alpine:3.12 as builder
RUN apk update && apk upgrade && \
apk add --no-cache bash git openssh
COPY . /src
RUN make -C /src
FROM alpine:3.12
COPY --from=builder /src/app /app
CMD ["/app"]
在多階段構建中,使用FROM語句將Dockerfile分為不同的階段,分別用于構建和運行應用,減小了最終鏡像的大小。