申请了amazon EC2 免费一年主机,我用他干了啥

https://aws.amazon.com

安装trojan

参考:https://iyideng.win/black-technology/cgfw/trojan-server-building-and-using-tutorial.html

安装 pythonstock

参考:https://github.com/pythonstock/stock

因为 mariadb已经装好,所以不需要再次安装,直接配置pythonstock的docker启动就好(MYSQL_HOST参数配置错误。后面费了好大的周折才修复回来。应当配置为 MYSQL_HOST=172.17.0.2 ,mysql容器的ip

1
2
3
4
5
6
7
8
9
docker run -itd --name stock  \
-v /data/notebooks:/data/notebooks \
-p 8888:8888 \
-p 9999:9999 \
-e MYSQL_HOST=127.0.0.1 \
-e MYSQL_USER=root \
-e MYSQL_PWD=RTWhN \
-e MYSQL_DB=stock_data \
pythonstock/pythonstock:latest

安装好后,登录进入容器shell

1
2
docker exec -it a562 bash
sh /data/stock/jobs/cron.daily/run_daily

执行后提示数据库连接不上。查看trojan的安装配置,发现mysql的端口设置为 31220(这个端口是映射个外部宿主的,不能在容器之间访问

1
2
cd /usr/local/etc/trojan/
cat config.json

解决方案:修改docker容器主机中的通用脚本中的数据库链接端口(原本的数据库端口是写死的3306)

1
2
3
#安装 vim
apt-get install vim
vim /data/stock/libs/common.py

仍然不行,只能查看两个docker容器的ip地址了,然后配置mysql的地址访问

172.17.0.3-》stock,172.17.0.2-》mysql

所以要把上面的修改复原,将mysql的配置改回来。

然后通过修改容器的环境变量参数来最终修复问题。(只能修改docker的容器配置参数,在docker容器内修改不行)

1
2
3
4
5
6
7
8
#宿主机内
service docker stop
vim /var/lib/docker/containers/a5629af557b237a035f32535766f569a3c5b0aad163fa2aff66809ef8a380969/config.v2.json
service docker start
docker container start a562

#容器内执行
sh /data/stock/jobs/run_init.sh