Podman使用
podman login登录docker.com 注册dockerhub账号podman logout注销dnf module install -y container-toolspodman管理工具阿里云镜像加速仅限阿里云服务器podman version查看版本。
基础
podman login 登录docker.com 注册dockerhub账号
podman logout 注销
dnf module install -y container-tools podman管理工具
https://172.20.0.61:9090/ Cockpit
阿里云镜像加速 仅限阿里云服务器
[[registry]]
prefix="docker.io"
location="xxxxx.mirror.aliyuncs.com"
podman version 查看版本
systemctl start/stop/restart/status podman
镜像管理
podman search nginx 搜索镜像
podman search nginx --filter=is-official 搜索官方镜像
podman pull nginx 拉取镜像
podman pull docker.io/library/nginx 拉取指定仓库镜像
podman images 查看本地镜像列表
podman tag 镜像ID 仓库/镜像:版本号 给镜像指定标签
podman rmi 镜像ID 删除镜像
podman push 仓库/镜像:版本号 推送镜像
容器管理
运行
podman run -it 镜像ID /bin/bash 创建容器 -i交互 t终端 /bin/bash镜像进入系统交互的shell名称
podman run -it --name ubuntu-18.04 镜像ID /bin/bash --name指定容器名称
podman run -itd 镜像ID /bin/bash -d后台运行容器
进入
podman exec -it 容器ID /bin/bash 进入容器 使用exit命令退出容器时,容器不会终止运行
podman attach -it 容器ID /bin/bash 进入容器 使用exit命令退出容器时,容器终止运行
exit 退出容器
查看容器
podman ps 仅显示正在运行中的容器
podman ps -a 查看所有容器的状态(运行中,退出,被创建)
查看日志
podman logs 容器id 查看容器日志
podman logs -f 容器id 实时监控容器的日志变化
podman start 容器id 开始运行容器
podman stop 容器id 停止运行容器
podman stop $(podman ps -aq) 停止所有运行中的容器
podman restart 容器id 重启运行中的容器
podman rm 容器id 删除容器
podman rm -f 容器id 强制删除容器
podman rm -f $(podman ps -aq) 强制删除所有容器
podman inspect 容器id 查看容器详细信息(镜像、网络、存储信息等)(网络、IP地址、mac地址、网关等-运行状态下)
podman cp name 容器id:目录 宿主机与容器间的文件/文件夹复制
podman cp 容器id:目录/name 目录
容器与镜像的转换
podman run -it 镜像id /bin/bash 镜像创建容器
podman commit 容器id 仓库/镜像/版本号 容器创建为镜像,并将镜像提交到仓库中 -a提交镜像的作者
podman push 仓库/镜像/版本号
数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,将主机操作系统目录直接映射进容器。当宿主机数据发生变化时,容器中的数据也会自动发生变化。
podman run -it -v 宿主机挂载目录:容器挂载目录 -v 宿主机挂载目录:容器挂载目录
容器监控
podman stats 容器id
podman top 容器id
podman ps -a显示所有状态下的容器 -q显示容器的id
容器的资源限制
podman run --cpus=1 -m=2g --name name -itd 镜像ID /bin/bash 限制虚拟CPU的个数,内存使用限制
podman port prometheus 查看容器的端口映射配置
podman ps --format "table {{.Names}}\t{{.Ports}}" 查看所有容器的端口状态
仓库管理
阿里云-控制台-容器镜像服务--实例列表-个人实例-命名空间-创建命名空间-创建镜像仓库-管理代码源(本地仓库)
给镜像指定标记 podman tag 镜像id 仓库地址/命名空间/仓库:版本号 登录阿里云 Container Registry podman login --username=用户名 仓库地址 将镜像推送到Registry podman push xxx/xxx/images:[镜像版本号] 从Registry中拉取镜像 docker pull xxx/xxx/images:[镜像版本号]
构建镜像
构建自定义镜像 Dockerfile、Containerfile
通过podman commit方式把容器提交为镜像
通过Podmanfile或Dockerfile的方式自定义镜像
podman build -f Podmanfile -t tomcat-10.1.48 . 构建镜像 -f不是Dockerfile格式,通过-f参数指定文件名称
Dockerfile
podman build -t tomcat-10.1.48 . 构建镜像
podman images
podman run -d --name tomcat10 -p 8084:8080 镜像id
http://172.20.0.37:8084
容器网络
容器端口暴露与端口映射
端口暴露 podman run -itd --name nginx -p 80 nginx -p 宿主机端口:容器端口 端口映射 podman run -itd -P nginx 随机端口映射 podman run -itd -p 80:80 nginx 指定端口映射 podman run -itd -p ip::80 nginx 指定网卡随机端口映射 podman run -itd -p ip:80:80 nginx 指定网卡指定端口映射 podman run -itd -p 80:80 -p 443:443 nginx 多个端口映射
podman run -d --name nginx -p 8081:80 nginx -p 宿主机端口:容器端口 podman ps -a systemctl stop firewalld 浏览器访问:http://172.20.0.37:8081 podman run -d --name httpd -p 8082:80 httpd 浏览器访问:http://172.20.0.37:8082
容器网络架构
ip a cni-podman0 虚拟网桥 本地服务通过这个路由可以连接不同的容器 10.88.0.xxx
桥接模式(默认) podman run -d nginx podman inspect 容器id | grep IPAdd* none模式 关闭了容器的网络功能,仅有本地回环,无法与外界或其他pod通信 podman run -d --net=none nginx host模式 容器不会虚拟出自己的网卡,配置自己的IP地址等,而是需要使用宿主机的IP地址和端口 podman run -d --net=host nginx 可以通过在浏览器输入当前主机的IP地址的方式来进行访问 container:<id>模式 创建容器时,通过“--net container:容器名称或id”的方式指定其和已经存在的某个容器共享一个Network Namespace,实现了一个容器和另一个容器共享网卡资源,新建的容器不会拥有自己独立的IP,而是共享已经存在容器的端口范围等网络资源,两个容器的进程通过lo网卡设备通信 podman run -itd --name bb busybox podman run -d --name nginx --net container:bb nginx
更多推荐

所有评论(0)