docker使用

2025-12-22
docker compose up -d --build   首次
docker compose up -d 只启动容器,不构建

docker save -o my_image.tar my_image:latest     使用 docker save 命令导出镜像‌:

### 第一步:确认本地Docker镜像
1. 打开终端,列出所有Docker镜像:
   ```bash
   docker images
   ```
2. 找到你要迁移的Python项目镜像,记录镜像名称和标签,如:flask-api-flask:latest

***
最后还是如下成功:
1.git pull 后台及api系统到服务器
2.执行docker compose up -d --build,完成后宝塔的docker编排就可以看到
3. api出现不能连接数据库的问题
  1)先确认用户允许从容器网段登录
  在 SQL 面板里执行:

  SELECT user, host, plugin FROM mysql.user WHERE user='yeXXX_xxx';
+-----------+-----------+
| user | host |
+-----------+-----------+
| yeXXX_xcx | 127.0.0.1 |
| yeXXX_xcx | localhost |
+-----------+-----------+
yeXXX_xcx 只允许从 127.0.0.1/localhost 登录,而容器连宿主机 MySQL 时,来源 IP 会是 容器网段(通常 172.x.x.x),所以必然被拒绝。

1)先看容器实际来源网段
在服务器执行(SSH 终端,不是 SQL 面板):

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' flask_api
假设输出是 172.17.0.5,那网段就按 172.17.% 来放行。

2)在 MySQL 里增加授权(在 SQL 面板执行即可)
把下面的 172.17.% 按你实际网段改掉:

CREATE USER IF NOT EXISTS 'yejin_xcx'@'172.17.%' IDENTIFIED BY 'sZfZ3Kz6kNH8GjX2';
GRANT ALL PRIVILEGES ON yejin_xcx.* TO 'yejin_xcx'@'172.17.%';
FLUSH PRIVILEGES;
(如果你暂时只想快速跑通,也可以用 '%',但不推荐长期这么开。)

数据库就可以连接上了

******Flask API 返回非 JSON,HTTP 502”的错误,但本地开发环境就不会出现,本地会读取成功

# gunicorn 默认 timeout=30s,服务器抓取/下载较慢时会被提前杀掉,反代表现为 502。
# 这里把 timeout 提高并支持通过环境变量覆盖。
CMD ["sh", "-lc", "exec gunicorn -w ${GUNICORN_WORKERS:-4} -b 0.0.0.0:8000 --timeout ${GUNICORN_TIMEOUT:-300} --graceful-timeout ${GUNICORN_GRACEFUL_TIMEOUT:-60} app.main:app"]

相关内容
上一页: linux 负载100%,CPU 100%
下一页: git 123
最新

坚持的力量

wordpress建站,视频剪辑拍摄,动画制作