Docker受限?试试Podman,手动搭建Ubuntu容器镜像
最近,我打算用Docker来搭建一个开发环境,但遗憾的是,我发现Docker Hub无法使用,甚至国内的镜像源也无法访问。这让我有些头疼,但好在我在寻找解决方案的过程中,发现了一个Docker的替代方案:Podman。
Podman的使用方法与Docker几乎一模一样,这让我倍感欣喜。然而,尽管找到了替代工具,我依然面临着镜像源的问题。无奈之下,我决定直接在Ubuntu Base的基础上构建一个基础容器镜像,然后再在这个基础镜像上构建实际需要的功能镜像。
下面,我将详细记录我的这一过程,希望能为遇到类似问题的朋友们提供一些帮助。
构建Ubuntu镜像的步骤:
-
准备环境:
我首先新建了一个文件夹,用于保存容器的配置和一些必要的文件。这个文件夹将作为我构建镜像的工作目录。 -
下载Ubuntu Base Rootfs包:
接着,我访问了https://cdimage.ubuntu.com/ubuntu-base/releases/,找到了合适的Ubuntu Base的rootfs包,并将其下载到之前新建的文件夹中。我选择的是ubuntu-base-20.04.5-base-amd64.tar.gz
。 -
创建Containerfile:
然后,我在文件夹中新建了一个名为Containerfile
的文件,并写入了以下内容:FROM scratch ADD ubuntu-base-20.04.5-base-amd64.tar.gz /
这个文件指定了构建镜像的基础和需要添加的文件。
-
构建容器镜像:
接下来,我在命令行中进入文件夹,并执行了以下命令来构建镜像:E:\containers\ubuntu\20.04>podman build . -t ubuntu:20.04
这条命令会根据
Containerfile
中的指令构建一个新的容器镜像,并给它打上ubuntu:20.04
的标签。构建过程非常顺利,很快就完成了。 -
查看构建结果:
构建完成后,我执行了以下命令来查看构建的镜像:E:\containers\ubuntu\20.04>podman image list -a
输出结果显示,我已经成功构建了一个名为
localhost/ubuntu
,标签为20.04
的容器镜像,大小为75.1MB。 -
测试镜像:
最后,我执行了以下命令来测试这个镜像:E:\containers\ubuntu\20.04>podman run --rm -it localhost/ubuntu:20.04 /bin/bash
镜像成功运行,我进入了一个Ubuntu的bash环境,可以看到Ubuntu的文件系统结构。
通过这次实践,我不仅解决了Docker无法使用的问题,还学会了如何使用Podman来构建和管理容器镜像。尽管过程中遇到了一些挑战,但最终的成果让我感到非常满意。未来,我计划在这个基础镜像上构建更多具有具体功能的容器镜像,以满足我的开发需求。