docker修改command_去Docker化之Podman创建容器

Podman是一个无守护进程的容器引擎,提供与Docker兼容的CLI,支持在Linux上运行和管理OCI容器。本文介绍了Podman的基本概念、安装方法,以及如何从Docker迁移,包括使用阿里云容器镜像运行容器。
摘要由CSDN通过智能技术生成

什么是Podman?

Podman是一个开源项目,可在大多数Linux平台上使用,并且位于GitHub上。Podman是一种无守护程序的容器引擎,用于在Linux系统上开发,管理和运行Open Container Initiative(OCI)容器和容器映像。Podman提供了与Docker兼容的命令行前端,该前端可以简单地为Docker cli别名,别名为docker = podman。Podman控制下的容器既可以由root用户运行,也可以由非特权用户运行Podman使用libpod库管理整个容器生态系统,其中包括容器,容器,容器映像和容器卷。Podman专门研究可帮助您维护和修改OCI容器映像的所有命令和功能,例如提取和标记。它允许您在生产环境中创建,运行和维护从这些映像创建的那些容器。

Podman服务仅在Linux平台上运行,但是目前正在开发REST API和客户端,这将允许Mac和Windows平台调用该服务。当前有一个基于Varlink的远程客户端,该客户端可在Mac或Windows平台上运行,允许远程客户端与Linux平台上的Podman服务器进行操作。除了这些客户端,还有一个Mac客户端。注意:REST API完成后,将不推荐使用Varlink远程客户端。Podman还可以基于容器或Pod生成Kubernetes YAML

安装Podman和执行一些基本命令

Centos Podman在CentOS 7的默认Extras仓库和CentOS 8和Stream的AppStream仓库中可用。尽管可用版本通常落后于最新的上游发行版,但它仍然是生产环境的首选版本。

sudo yum -y install podman

这些软件包尚未通过正式的Red Hat QA流程,因此可能不适用于生产环境。安装最新版这些软件包尚未通过正式的Red Hat QA流程,因此可能不适用于生产环境。

# CentOS 7
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo
sudo yum -y install podman

# CentOS 8
sudo dnf -y module disable container-tools
sudo dnf -y install 'dnf-command(copr)'
sudo dnf -y copr enable rhcontainerbot/container-selinux
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8/devel:kubic:libcontainers:stable.repo
sudo dnf -y install podman
sudo dnf -y update

# CentOS Stream
sudo dnf -y module disable container-tools
sudo dnf -y install 'dnf-command(copr)'
sudo dnf -y copr enable rhcontainerbot/container-selinux
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8_Stream/devel:kubic:libcontainers:stable.repo
sudo dnf -y install podman
sudo dnf -y update

可以使用帮助:

$ podman --help
$ podman  --help
$ man podman
$ man podman-

搜索、拉取列出镜像

podman search nginx |head -n 5
9b626463bff13e00926af2f3d897a927.png
podman image pull nginx

746213558ac4690b0a34d8923900ebee.pngPodman 为了方便用户从 Docker 迁移过来,Podman 支持从本地的 docker daemon 中直接拉取镜像

podman pull docker-daemon:harbor.xxx.com/xx/app:0.5
列出镜像
podman images

运行容器

podman run -dt -p 8080:80/tcp  docker.io/library/nginx

由于容器-d以podman run命令中的表示的分离模式运行,因此Podman将在执行命令后打印容器ID。该-t还增加了一个伪终端以交互的shell中运行任意命令。a0c9b60cda612fe65e588e89058d3f58.png由于该容器以无根模式运行,因此没有为该容器分配IP地址。

$ podman inspect -l | grep IPAddress
            "IPAddress": "",
查看容器的日志
podman logs -l
查看容器的PID
podman top -l

Podman 语法兼容Docker不多说a3a0ac9e074d703cb5bd6697cd16d99d.png

Podman使用阿里云容器镜像

Podman引入了一个注册表的概念,注册表就是包括 docker.io 在内的多个容器镜像源,默认的有 redhat docker fedora centos quay Podman 默认注册表配置文件在 /etc/containers/registries.conf

[root@43-c60403747-0048-1129483 ~]# cat  /etc/containers/registries.conf 
unqualified-search-registries = ["docker.io"]

[[registry]]
prefix = "docker.io"
location = "***.mirror.aliyuncs.com"
insecure = false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值