如何在后台运行Python Docker容器并在命令中使用它们



我想在测试中使用不同的Python版本。我希望有3个用于Python 3.6、Python 3.7和Python 3.8的Docker容器在运行,并且我希望命令python3.6python3.7python3.8能够在环境中访问。

如果它还可以将这些容器与python命令关联起来,这也会有所帮助。

我想您的意思是希望运行3个docker容器,每个容器都有不同的Python版本。并且您希望从主机为每个python容器执行命令。

您可以使用以下脚本来完成此操作:

docker-compase.yml

创建一个包含以下内容的docker-compose.yml文件:

version: '3.9'
services:
python36:
image: python:3.6.14-buster
container_name: python36
working_dir: /app
volumes:
- ./app:/app
command: ["sleep", "30d"]
python37:
image: python:3.7.11-buster
container_name: python37
working_dir: /app
volumes:
- ./app:/app
command: [ "sleep", "30d" ]

python38:
image: python:3.8.11-buster
container_name: python38
working_dir: /app
volumes:
- ./app:/app
command: [ "sleep", "30d" ]

要运行的python脚本在名为的文件夹中/应用程序创建一个名为version.py 的文件

import sys
print(sys.version)

主机上的命令

在为所有三个容器运行version.py的主机上创建一个Bash脚本。称之为run_command.sh(当然还有"chmod 755"(

#!/bin/bash
docker exec -it python36 python version.py
docker exec -it python37 python version.py
docker exec -it python38 python version.py

使用运行

./run_command.sh

输出

输出:

$ ./run_command.sh
3.6.14 (default, Jun 29 2021, 21:23:13)
[GCC 8.3.0]
3.7.11 (default, Jun 29 2021, 20:31:06)
[GCC 8.3.0]
3.8.11 (default, Jun 29 2021, 19:54:56)
[GCC 8.3.0]

最新更新