使用 Linux 的docker 部署freqtrade 注意点

内容目录

freqtrade 的github地址:https://github.com/freqtrade/freqtrade

主机部署好宝塔

宝塔中安装 docker 和 nginx

docker中安装freqtrade

https://www.freqtrade.io/en/stable/docker_quickstart/#freqtrade-with-docker
确定服务器上一个目录,以后保存策略、数据、回测等核心文件,cd 切换,然后挨个执行

mkdir ft_userdata
cd ft_userdata/
# Download the docker-compose file from the repository
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml

# Pull the freqtrade image
docker compose pull

# Create user directory structure
docker compose run --rm freqtrade create-userdir --userdir user_data

# Create configuration - Requires answering interactive questions
docker compose run --rm freqtrade new-config --config user_data/config.json

最后一步指令会出现选项,有的选错,会导致 config.json 配置失败,不出现config.json文件

启动所有docker 容器
docker compose up -d

查看所有启动的docker 容器,看是否有两个,一个执行,一个 webUI
docker ps

增加容器服务freqtrade-webUI

用两个容器,一个交易,一个 web 服务展示回测,好处是资源相互隔离,避免回测消耗资源导致交易程序终止的情况。

修改ft_userdata/docker-compose.yml,增加另外台容器服务的配置

  webserver:
    image: freqtradeorg/freqtrade:stable
    restart: unless-stopped
    container_name: freqtrade-webserver
    volumes:
      - "./user_data:/freqtrade/user_data"
    ports:
      - "127.0.0.1:8081:8080"   # 可以更改端口,避免与 trade 服务冲突,webUI 的127.0.0.1:8081 映射到docker 宿主的8080 端口
    command: >
      webserver
      --logfile /freqtrade/user_data/logs/freqtrade_webserver.log
      --config /freqtrade/user_data/config.json

启动所有docker 容器
docker compose up -d

查看所有启动的docker 容器,看是否有两个,一个执行,一个 webUI
docker ps

验证容器到docker宿主的8080 端口是否通畅

方法1:安装远程桌面直接浏览

阿里云进入vnc 登录,默认没安装桌面,需要手动安装

sudo apt update
sudo apt install lxqt lxqt-core

启动服务器内桌面,打开服务器内的 chrome 浏览器,访问内网地址 127.0.0.1:8081,看是否能打开 webUI 页面。

能打开,则说明正常

方法2:curl 指令

curl http://127.0.0.1:8081

有 html 代码返回,则表示访问正常

内网到外网的地址暴露

  1. 修改配置ft_userdata/docker-compose.yml
    - "127.0.0.1:8081:8080"
    改成
    - "8081:8080"

    意思是将 webUI 容器的 8080 直接转 0.0.0.0:8081,简写"8081:8080"

  2. 阿里云 ecs 放行8081端口,不然无法访问

  3. 宝塔中容器里,开启反向代理,增加安全性

验证:打开地址 公网 ip: 8081端口直接访问

其他问题

webUI 不建议多用户登录

没有必要支持多用户登录,且增加复杂度了

docker时间不对:容器内时区相差8小时问题解决

在宿主机内对容器进行修改
直接执行以下命令,不需要进入容器内
docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime

浏览量(11) | 此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据