Docker受限?试试Podman,手动搭建Ubuntu容器镜像

Docker受限?试试Podman,手动搭建Ubuntu容器镜像

最近,我打算用Docker来搭建一个开发环境,但遗憾的是,我发现Docker Hub无法使用,甚至国内的镜像源也无法访问。这让我有些头疼,但好在我在寻找解决方案的过程中,发现了一个Docker的替代方案:Podman。

Podman的使用方法与Docker几乎一模一样,这让我倍感欣喜。然而,尽管找到了替代工具,我依然面临着镜像源的问题。无奈之下,我决定直接在Ubuntu Base的基础上构建一个基础容器镜像,然后再在这个基础镜像上构建实际需要的功能镜像。

下面,我将详细记录我的这一过程,希望能为遇到类似问题的朋友们提供一些帮助。

构建Ubuntu镜像的步骤

  1. 准备环境
    我首先新建了一个文件夹,用于保存容器的配置和一些必要的文件。这个文件夹将作为我构建镜像的工作目录。

  2. 下载Ubuntu Base Rootfs包
    接着,我访问了https://cdimage.ubuntu.com/ubuntu-base/releases/,找到了合适的Ubuntu Base的rootfs包,并将其下载到之前新建的文件夹中。我选择的是ubuntu-base-20.04.5-base-amd64.tar.gz

  3. 创建Containerfile
    然后,我在文件夹中新建了一个名为Containerfile的文件,并写入了以下内容:

    FROM scratch
    
    ADD ubuntu-base-20.04.5-base-amd64.tar.gz /
    

    这个文件指定了构建镜像的基础和需要添加的文件。

  4. 构建容器镜像
    接下来,我在命令行中进入文件夹,并执行了以下命令来构建镜像:

    E:\containers\ubuntu\20.04>podman build . -t ubuntu:20.04
    

    这条命令会根据Containerfile中的指令构建一个新的容器镜像,并给它打上ubuntu:20.04的标签。构建过程非常顺利,很快就完成了。

  5. 查看构建结果
    构建完成后,我执行了以下命令来查看构建的镜像:

    E:\containers\ubuntu\20.04>podman image list -a
    

    输出结果显示,我已经成功构建了一个名为localhost/ubuntu,标签为20.04的容器镜像,大小为75.1MB。

  6. 测试镜像
    最后,我执行了以下命令来测试这个镜像:

    E:\containers\ubuntu\20.04>podman run --rm -it localhost/ubuntu:20.04 /bin/bash
    

    镜像成功运行,我进入了一个Ubuntu的bash环境,可以看到Ubuntu的文件系统结构。

通过这次实践,我不仅解决了Docker无法使用的问题,还学会了如何使用Podman来构建和管理容器镜像。尽管过程中遇到了一些挑战,但最终的成果让我感到非常满意。未来,我计划在这个基础镜像上构建更多具有具体功能的容器镜像,以满足我的开发需求。

你可能感兴趣的:(podman,docker,podman,ubuntu)