《OpenShift 4.x HOL教程汇总》
已在 RHEL 8.4 上验证
本文的前置条件:RHEL8 - 配置基于安装 ISO 文件的 YUM Repo

文章目录

  • 安装podman compose环境
  • 用podman compose运行busybox应用
  • 用podman compose运行Ansible Tower

podman 3开始提供可以取代docker compose功能的podman-compose。缺省通过运行docker-compose.yaml文件即可运行有多个容器构成的应用。podman-compose无需后台daemon服务。

安装podman compose环境

  1. 安装podman
$ yum install -y podman
$ podman version
Version:      3.0.2-dev
API Version:  3.0.0
Go Version:   go1.15.7
Built:        Wed Apr  7 04:36:54 2021
OS/Arch:      linux/amd64
  1. 安装podman-compose和依赖的python3
$ yum  install -y python3
$ pip3 install podman-compose
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting podman-composeDownloading https://files.pythonhosted.org/packages/d8/1a/4eed53406776275302a9325555a3c389c7ad8fa35ab287e6d93c041b7de7/podman_compose-0.1.5-py2.py3-none-any.whl
Collecting pyyaml (from podman-compose)Downloading https://files.pythonhosted.org/packages/7a/5b/bc0b5ab38247bba158504a410112b6c03f153c652734ece1849749e5f518/PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl (640kB)100% |████████████████████████████████| 645kB 744kB/s
Installing collected packages: pyyaml, podman-compose
Successfully installed podman-compose-0.1.5 pyyaml-5.4.1

用podman compose运行busybox应用

  1. 下载docker-compose代码
$ yum install -y git
$ git clone https://github.com/liuxiaoyu-git/podman-compose
  1. 查看docker-compose.yaml文件。
$ cd podman-compose/examples/busybox/
$ more docker-compose.yaml
  1. 根据docker-compose.yaml运行podman-compose。在启动过程中会提示选择使用那个image源。
$ podman-compose -f podman-compose/examples/busybox/docker-compose.yaml up -d
podman pod create --name=busybox --share net -p 6379 -p 8080
f7b4df2a88fe52fc5c9415a06dddf8e40369e04405d2e1d19e0e3bb3a74df103
0
podman create --name=busybox_redis_1 --pod=busybox -l io.podman.compose.config-hash=123 -l io.podman.compose.project=busybox -l io.podman.compose.version=0.0.1 -l com.docker.compose.container-number=1 -l com.docker.compose.service=redis -e SECRET_KEY=aabbcc -e ENV_IS_SET --add-host redis:127.0.0.1 --add-host busybox_redis_1:127.0.0.1 --add-host frontend:127.0.0.1 --add-host busybox_frontend_1:127.0.0.1 redis:alpine
✔ docker.io/library/redis:alpine
Trying to pull docker.io/library/redis:alpine...
Getting image source signatures
Copying blob 6ab1d05b4973 done
Copying blob 8cc52074f78e done
Copying blob aa7854465cce done
Copying blob 540db60ca938 done
Copying blob 8173c12df40f done
Copying blob 29712d301e8c done
Copying config 1690b63e20 done
Writing manifest to image destination
Storing signatures
d8610a268ed6993f49a1e10a736a3d13c838df66d8c580d8bce617a212e672e3
0
podman create --name=busybox_frontend_1 --pod=busybox -l my.label=my_value -l io.podman.compose.config-hash=123 -l io.podman.compose.project=busybox -l io.podman.compose.version=0.0.1 -l com.docker.compose.container-number=1 -l com.docker.compose.service=frontend -e SECRET_KEY2=aabbcc -e ENV_IS_SET2 --add-host redis:127.0.0.1 --add-host busybox_redis_1:127.0.0.1 --add-host frontend:127.0.0.1 --add-host busybox_frontend_1:127.0.0.1 --add-host myredis:127.0.0.1 -w / busybox /bin/busybox httpd -f -p 8080
✔ docker.io/library/busybox:latest
Trying to pull docker.io/library/busybox:latest...
Getting image source signatures
Copying blob b71f96345d44 done
Copying config 69593048aa done
Writing manifest to image destination
Storing signatures
754be0a0b1e038606883a53f3016a4c6a8f986775efe22cbb949626b4073321d
0
  1. 查看运行的容器。
$ podman ps
CONTAINER ID  IMAGE                             COMMAND               CREATED         STATUS             PORTS                                             NAMES
8dfecf911dca  k8s.gcr.io/pause:3.2                                    47 seconds ago  Up 27 seconds ago  0.0.0.0:43967->6379/tcp, 0.0.0.0:37103->8080/tcp  f7b4df2a88fe-infra
d8610a268ed6  docker.io/library/redis:alpine    redis-server          37 seconds ago  Up 27 seconds ago  0.0.0.0:43967->6379/tcp, 0.0.0.0:37103->8080/tcp  busybox_redis_1
754be0a0b1e0  docker.io/library/busybox:latest  /bin/busybox http...  28 seconds ago  Up 26 seconds ago  0.0.0.0:43967->6379/tcp, 0.0.0.0:37103->8080/tcp  busybox_frontend_1
  1. 关停整个busybox应用。
$ podman-compose -f podman-compose/examples/busybox/docker-compose.yaml down
podman stop -t=1 busybox_redis_1
8f865afa6bd3b150d2998964109da975f1e52b0e7bf5927b84e157d4a108599e
0
podman stop -t=1 busybox_frontend_1
5f739d47684e0c42f86dfaa9bf9821e4c6b31891ea9fba866ccf31209e032812
0
podman rm busybox_redis_1
8f865afa6bd3b150d2998964109da975f1e52b0e7bf5927b84e157d4a108599e
0
podman rm busybox_frontend_1
5f739d47684e0c42f86dfaa9bf9821e4c6b31891ea9fba866ccf31209e032812
0
podman pod rm busybox
deb3c036e83b4fd4cf46e0a5b1edfcb309893a459e0a471762bf40804a6ebe32
0
  1. 确认当前本地已经没有容器了,但是还有现在的原始镜像。
$ podman ps -a
CONTAINER ID  IMAGE   COMMAND  CREATED  STATUS  PORTS   NAMES
$ podman images
REPOSITORY                 TAG     IMAGE ID      CREATED        SIZE
docker.io/library/busybox  latest  69593048aa3a  15 hours ago   1.46 MB
docker.io/library/redis    alpine  1690b63e207f  6 days ago     33.5 MB
k8s.gcr.io/pause           3.2     80d28bedfe5d  15 months ago  688 kB

用podman compose运行Ansible Tower

  1. 运行以下命令运行包含Ansible Tower的容器。
$ podman-compose -f podman-compose/examples/awx3/docker-compose.yaml up -d
  1. 用admin/password登录。
  2. 进入控制台。
  3. 查看运行的容器。
$ podman ps
CONTAINER ID  IMAGE                               COMMAND               CREATED         STATUS             PORTS                   NAMES
53473a27f589  k8s.gcr.io/pause:3.2                                      19 seconds ago  Up 18 seconds ago  0.0.0.0:8080->8052/tcp  a855751ad2dc-infra
4cfce5d78231  docker.io/library/postgres:9.6      postgres              18 seconds ago  Up 18 seconds ago  0.0.0.0:8080->8052/tcp  awx3_postgres_1
bbea2481b803  docker.io/library/rabbitmq:3        rabbitmq-server       16 seconds ago  Up 16 seconds ago  0.0.0.0:8080->8052/tcp  awx3_rabbitmq_1
f6691fc9ce41  docker.io/library/memcached:alpine  memcached             14 seconds ago  Up 15 seconds ago  0.0.0.0:8080->8052/tcp  awx3_memcached_1
6be1a4f9951c  docker.io/ansible/awx_web:3.0.1     /bin/sh -c /usr/b...  13 seconds ago  Up 13 seconds ago  0.0.0.0:8080->8052/tcp  awx3_awx_web_1
23a38a382e02  docker.io/ansible/awx_task:3.0.1    /bin/sh -c /usr/b...  11 seconds ago  Up 11 seconds ago  0.0.0.0:8080->8052/tcp  awx3_awx_task_1
  1. 关停运行的docker-compose应用。
$ podman-compose -f podman-compose/examples/awx3/docker-compose.yaml up -d
podman stop -t=1 awx3_postgres_1
dd48e946fd3e742f10aab831f4ae0436d0cd4fd9d300e5d068077325b5c2c6e3
0
podman stop -t=1 awx3_rabbitmq_1
5472d1006c45466abf7bbfe97da4d50c53a559920585f29831c7945bb1c3b843
0
podman stop -t=1 awx3_memcached_1
9239855e91113a3ff45e70affd8783c4f897524f9a7a6ec2d62e00fe2c09e8a4
0
podman stop -t=1 awx3_awx_web_1
83739ed5211d5e61199c894c6be2142646a1ae7889a7d6c03353622ad707f092
0
podman stop -t=1 awx3_awx_task_1
99ae2208d01afcd0a0797cf3ff8fa236c40d05d39a04762379fb56d3fc86256f
0
podman rm awx3_postgres_1
dd48e946fd3e742f10aab831f4ae0436d0cd4fd9d300e5d068077325b5c2c6e3
0
podman rm awx3_rabbitmq_1
5472d1006c45466abf7bbfe97da4d50c53a559920585f29831c7945bb1c3b843
0
podman rm awx3_memcached_1
9239855e91113a3ff45e70affd8783c4f897524f9a7a6ec2d62e00fe2c09e8a4
0
podman rm awx3_awx_web_1
83739ed5211d5e61199c894c6be2142646a1ae7889a7d6c03353622ad707f092
0
podman rm awx3_awx_task_1
99ae2208d01afcd0a0797cf3ff8fa236c40d05d39a04762379fb56d3fc86256f
0
podman pod rm awx3
0e2ef02854220a446f63b1b80572ffe10135c59f927829a8e475a76893049645
0

RHEL 8 - 用podman compose替代docker compose运行Ansible Tower相关推荐

  1. Docker与Docker Compose的安装以及Portainer容器管理工具

    Docker官网 概述 Docker 是一个用于开发.发布和运行应用程序的开放平台.Docker 能够将应用程序与基础架构分离,以便可以快速交付软件.使用 Docker,可以像管理应用程序一样管理基础 ...

  2. Docker Compose使用详记-小白笔记

    1 Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然后,使用一个命令,就可以从 ...

  3. Docker核心技术之Docker Compose

    一.Docker Compose 简介 Docker Compose是什么? Docker Compose是一个能一次性定义和管理多个Docker容器的工具. 详细地说: Compose中定义和启动的 ...

  4. Docker Compose安装

    一 .  Docker Compose概述 Docker Compose是一个用于定义和运行多个容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后 , ...

  5. Docker(四):Docker 三剑客之 Docker Compose

    前两篇文章我们介绍了 Dockerfile 的使用Docker(二):Dockerfile 使用介绍,我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器,如果需要定义多个容器就 ...

  6. Docker Compose基本介绍

    Docker Compose 什么是docker compose 1. Compose是一个定义和管理多容器的工具,使用Python语言编写. 2. 使用Compose配置文件描述多个容器应用的架构, ...

  7. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行

    本文工具准备: Docker for Windows Visual Studio 2015 与 Visual Studio Tools for Docker 或 Visual Studio 2017 ...

  8. Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)

    文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...

  9. Docker Compose编排(写法格式及实验)

    目录 一.Docker Compose前言 二.Docker compose 的文件结构 1.docker compose配置常用字段 2.docker compose常用命令 三.使用compose ...

最新文章

  1. Python-OpenCV 处理图像(四):图像直方图和反向投影
  2. 004 两种方法找寻路call
  3. python:字典的操作
  4. 部落卫队pascal解题程序
  5. 【NLP】NLP提效,除了选择合适的模型,就是数据增强了
  6. 项目使用encode_Spring Cloud Security:Oauth2使用入门
  7. word手写字体以假乱真_学会Word上下标,搞定公式输入
  8. 一台电脑同时启动多个java_如何在一台同时登录多个微信?
  9. 『原创』.Net CF下ListView的数据绑定
  10. Razor 中的@rendersection
  11. 算法导论9.1-1找第二小的元素
  12. Jenkins 内部服务器遭访问且被部署密币挖机
  13. html网页简单代码
  14. 全能电子地图_安利一个胜过Google Earth的地图软件——全能电子地图下载器
  15. 计算机播放qq音乐没声音怎么办,Win7电脑中QQ音乐听不了怎么办?
  16. 最好用的 7 款 Vue admin 后台管理系统测评
  17. VPX SRIO交换板VPX3U-1Swit-CPS1848
  18. 上海应届毕业生起薪调查报告
  19. 基于JavaEE的实验室管理系统技术点
  20. 更多免费资源解压密码_更多免费(几乎免费)法律图片资源

热门文章

  1. 数字化转型方法论_50+企业数字化转型、管理的方法论,这本书到底有什么干货?...
  2. html显示当前时间_HTML基础教程:超链接的使用
  3. excel重复上一步快捷键_史上最全的Excel快捷键合集
  4. kafka 丢弃数据_Kafka快速入门
  5. dijkstra最短路径算法视频_Dijkstra最短路径算法
  6. h5封装去底部_Appium—Native+H5混合APP的自动化
  7. python上传文件进度_python实现进度条--主要用在上传下载文件
  8. ibm服务器维修站点,IBM 服务器维修
  9. 问题处理:qt.qpa.plugin: Could not find the Qt platform plugin “cocoa“ in ““
  10. C++设计模式详解之装饰者模式解析