Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行多个podman容器,如docker compose_Docker_Docker Compose_Containers_Podman - Fatal编程技术网

运行多个podman容器,如docker compose

运行多个podman容器,如docker compose,docker,docker-compose,containers,podman,Docker,Docker Compose,Containers,Podman,我在podman中找到了一些可以替代docker compose的库,但它仍在开发中,所以我的问题是如何一起运行多个容器,目前我正在使用bash脚本运行所有容器,但这是第一次没有更新容器 首先,我更喜欢在podman中使用任何方法,而不是使用其他工具 库(正在开发中)-->我认为您正在寻找的是,或者至少它允许您通过遵循一个完善的标准将多个容器一起运行 我的第一个方法是像你一样,把所有事情都当作命令来做,让它工作,比如: #创建一个pod,从内部80/TCP发布端口8080/TCP $podman

我在podman中找到了一些可以替代docker compose的库,但它仍在开发中,所以我的问题是如何一起运行多个容器,目前我正在使用bash脚本运行所有容器,但这是第一次没有更新容器

首先,我更喜欢在podman中使用任何方法,而不是使用其他工具

库(正在开发中)-->

我认为您正在寻找的是,或者至少它允许您通过遵循一个完善的标准将多个容器一起运行

我的第一个方法是像你一样,把所有事情都当作命令来做,让它工作,比如:

#创建一个pod,从内部80/TCP发布端口8080/TCP
$podman pod创建\
--给我的豆荚起名\
--发布8080:80/TCP\
--发布时间8113:113/TCP
#在吊舱内创建第一个容器
$podman run——分离\
--吊舱我的吊舱\
--名称cont1名称\
--env MY_VAR=“MY val”\
nginxdemos/你好
#在吊舱内创建第二个容器
$podman run——分离\
--吊舱我的吊舱\
--名称cont2名称\
--env MY_VAR=“MY val”\
greboid/nullident
#核对
$podman集装箱ls;吊舱人吊舱
现在您有了一个pod,您可以使用
podman generate kube my pod>my pod.yaml
将其导出为pod清单

只要您尝试自己的示例,您就会看到并非所有内容都像预期的那样导出(如网络或卷),但至少它可以作为您继续工作的基础

假设同一个示例,在YAML Pod清单中,它看起来像这样
my Pod.YAML

#使用podman-2.2.1创建
版本:v1
种类:豆荚
元数据:
标签:
应用程序:我的豆荚
名字:我的豆荚
规格:
容器:
#在113/TCP上创建第一个容器:虚拟identd服务器
-姓名:cont2姓名
图片:docker.io/greboid/nullident:latest
命令:[“/usr/sbin/inetd”,“-i”]
环境:
-姓名:MY_VAR
价值:我的价值
#确保此pod内的其他“containerPort”值不重叠
端口:
-集装箱港口:113
主机端口:8113
协议:TCP
工作目录:/
#创建第二个容器。
-姓名:cont1姓名
图片:docker.io/nginxdemos/hello:latest
命令:[“nginx”、“-g”、“守护进程关闭;”]
环境:
-姓名:MY_VAR
价值:我的价值
#确保此pod内的其他“containerPort”值不重叠
端口:
-集装箱港口:80
主机端口:8080
协议:TCP
工作目录:/
餐馆政策:永不
状态:{}
使用此文件时,如下所示:

#使用Kubernetes兼容的Pod清单创建和运行Pod
$podman播放kube my-pod.yaml
#检查
$podman集装箱ls;吊舱人吊舱
#输出
容器ID映像命令已创建状态端口名称
1a53a5c0f076 docker.io/nginxdemos/hello:最新的nginx-g守护进程o。。。8秒前上升6秒前0.0.0:8080->80/tcp,0.0.0.0:8113->113/tcp my-pod-cont1-name
351065b66b55 docker.io/greboid/nullident:latest/usr/sbin/inetd-。。。10秒前上升6秒前0.0.0:8080->80/tcp,0.0.0.0:8113->113/tcp my-pod-cont2-name
e61c68752e35 k8s.gcr.io/pause:3.2 14秒前上升7秒前0.0.0.0:8080->80/tcp,0.0.0.0:8113->113/tcp b586ca581129 infra
容器下ID创建的吊舱ID名称状态
b586ca581129我的吊舱在14秒前运行e61c68752e35 3

您将能够访问nginx在8080提供的“Hello World”,以及8113提供的虚拟identd服务器。

可能与实际情况不同,正如我提到的,该库正在开发中。要么我需要更换,要么我需要正式的方式来做。