在本文中,我们将介绍如何使用Podman创建Docker映像并将其发布/推送到Docker Hub的方法。Podman是一种用于管理容器和Pod的工具,所有容器和Pod均作为Podman工具的子进程创建,Podman的CLI(podman)基于Docker CLI。在开始之前,请确保已在系统中安装了podman,参考在CentOS 8/RHEL 8系统上安装和使用Podman的方法。
先决操作 创建您的Docker映像,为此,我将创建一个简单的Node.js应用程序: $ mkdir ~/docker-images/demo/ $ cd ~/docker-images/demo/ 这是我的app.js文件: $ vim app.js const http = require('http'); const os = require('os'); console.log("Node server starting..."); var handler = function(request, response) { console.log("Received request from " + request.connection.remoteAddress); response.writeHead(200); response.end("You've hit " + os.hostname() + "\n"); }; var www = http.createServer(handler); www.listen(8080); 创建Dockerfile: $ vim Dockerfile FROM node ADD app.js /app.js ENTRYPOINT ["node", "app.js"] 用tag构建image: $ podman build -t docker.io/jmutai/nodejs-demo:v1 . STEP 1: FROM node STEP 2: ADD app.js /app.js afbd0b73b68748a693427c1ed7bf4a40d293632691b385a565a40d0d1092b4de STEP 3: ENTRYPOINT ["node", "app.js"] STEP 4: COMMIT docker.io/jmutai/nodejs-demo:v1 ffe0449e93f36fddecc71e701a6011dbbfa0cfcdf6565209c84b845bfca60bae 注:将docker.io/jmutai/nodejs-demo:v1替换为您的应用程序的tag。 登录Docker Hub: $ podman login docker.io Username: jmutai Password: Login Succeeded! 由于我已经按照Docker Hub要求的格式在构建时标记了映像,因此可以直接推送它: $ podman push docker.io/jmutai/nodejs-demo:v1
使用podman从Docker Hub中提取Docker映像 然后,您可以通过运行以下命令在其他计算机上提取图像: 1、使用docker客户端: $ docker pull docker.io/jmutai/nodejs-demo:v1 $ docker pull jmutai/nodejs-demo:v1 2、使用podman: $ podman pull docker.io/jmutai/nodejs-demo:v1 $ podman pull jmutai/nodejs-demo:v1 运行一个测试容器: 1、使用podman: $ podman run --name nodejs-demo -p 8080:8080 -d docker.io/jmutai/nodejs-demo:v1 d1a669579a39580fd1dfa19aaeed2c7a29aa28a1324d87c301d20f41e30e014f 2、使用Docker: $ docker run --name nodejs-demo -p 8080:8080 -d docker.io/jmutai/nodejs-demo:v1 现在尝试访问位于http://localhost:8080的应用程序(如有必要,将localhost替换为Docker主机的主机名或IP): $ curl localhost:8080 You've hit d1a669579a39 确认容器ID以验证输出: $ podman ps
清洁环境: $ podman rm -f d1a669579a39 $ docker rm -f d1a669579a39 至此,操作完成。
相关主题 |