如何在docker容器中安装python模块

2024-03-28 11:13:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我的Docker知识非常贫乏,我安装Docker只是因为我会使用freqtrade,所以我遵循这个简单的方法

https://www.freqtrade.io/en/stable/docker_quickstart/

现在,所有freqtrade命令都使用docker运行,例如

D:\ft_userdata\user_data>docker-compose run --rm freqtrade backtesting --config user_data/cryptofrog.config.json --datadir user_data/data/binance --export trades --stake-amount 70 --strategy CryptoFrog -i 5m

当我尝试这个策略的时候,我开始有问题了 https://github.com/froggleston/cryptofrog-strategies 为了贸易。此策略需要Python模块finta。 我知道Python模块finta应该安装在我的Docker容器中 而不是在我的Windows系统中(从控制台“pip安装finta”很容易!)

即使我试图通过stackoverflow和google找到一个解决方案,我也不知道如何完成这个步骤(在freqtrade容器中安装finta python模块)。 几个小时后我真的迷路了

有人可以简单地告诉我怎么做

交易挂载点是 D:\ft\u userdata\user\u data


Tags: 模块dockerhttpsconfigdata策略容器ft
3条回答

您需要制作自己的已安装finta的docker映像。幸运的是,您可以在标准freqtrade docker映像的基础上进行构建

首先用这两行代码做一个Dockerfile

FROM freqtradeorg/freqtrade:stable
RUN pip install finta

然后通过运行命令构建映像(调用新映像myfreqtrade

docker build -t myfreqtrade .

最后,通过更改行来更改docker-compose.yml文件以运行图像

image: freqtradeorg/freqtrade:stable

image: myfreqtrade

应该是这样

您可以使用以下命令从容器中获取bash:

docker-compose exec freqtrade bash

然后:

pip install finta

或 仅运行一个命令:

docker-compose exec freqtrade pip install finta

如果上述解决方案不起作用,您可以运行docker ps命令并获取容器的container id。然后

docker exec -it CONTAINER_ID bash
pip install finta

让Python代码在容器中运行的方法是将其打包为Docker映像,然后基于它运行容器。 enter image description here

要生成Docker映像,我们需要创建一个Dockerfile,其中包含构建映像所需的指令。Docker builder生成Docker图像,然后处理Docker文件。然后,通过一个简单的docker run命令,我们使用Python服务创建并运行一个容器

包含用于为Python服务安装finta组装Docker映像的指令的Dockerfile示例如下

# set base image (host OS)
FROM python:3.8

# install dependencies
RUN pip install finta

# command to run on container start
CMD [ "python", "-V" ]

对于Docker文件中的每个指令或命令,Docker builder都会生成一个图像层,并将其堆叠在前面的图像层上。因此,该过程产生的Docker映像只是不同层的只读堆栈

docker build -t myimage .

然后,我们可以检查图像是否在本地图像存储中:

docker images

请参阅freqtrade DockerFilehttps://github.com/freqtrade/freqtrade/blob/develop/Dockerfile

相关问题 更多 >