创建 Docker 基础镜像有几种主要方法,下面我将详细介绍每种方法:
这是最基础的方法,创建一个完全空白的镜像:
FROM scratch
ADD hello /
CMD ["/hello"]
docker build -t my-base-image .
更常见的方法是使用官方基础镜像:
FROM alpine:latest
# 或者 FROM ubuntu:20.04
# 或者 FROM centos:7
然后添加你需要的组件:
FROM alpine:latest
RUN apk add --no-cache bash curl
基于现有容器创建镜像:
# 启动一个基础容器
docker run -it ubuntu:20.04 /bin/bash
# 在容器内进行修改后
exit
# 提交为新的镜像
docker commit <container-id> my-new-image
# 安装工具
sudo apt-get install debootstrap
# 创建基础文件系统
sudo debootstrap focal focal > /dev/null
# 打包为镜像
sudo tar -C focal -c . | docker import - my-ubuntu-base
# 安装工具
sudo apt-get install rinse
# 创建基础文件系统
sudo rinse --distribution centos-7 --directory centos7
# 打包为镜像
sudo tar -C centos7 -c . | docker import - my-centos-base
# 创建空镜像
buildah from scratch
# 获取挂载点
mountpoint=$(buildah mount working-container)
# 添加文件系统内容
dnf install --installroot $mountpoint bash coreutils --releasever 8 --setopt install_weak_deps=false -y
# 配置
buildah config --cmd /bin/bash working-container
# 提交镜像
buildah commit working-container my-base-image
创建后可以验证:
docker run -it my-base-image /bin/sh
希望这些方法能帮助你创建所需的 Docker 基础镜像。根据你的具体需求选择最适合的方法。