之前一直都是用其他开发者 build 的 docker 成品 昨天算是首次把自己写的 python 程序打包成 docker ,部署到自己的威联通 nas 上 然后就出现了一个很奇怪的问题 只要把这个容器的网络模式设置成 bridge 后,这个容器里运行的 python 程序就没办法连接外网,fast api 提供的接口,外部网络也无法访问。docker exec 进去后,实际可以 curl 到互联网 但是把 docker 网络设置成 nat+端口映射,那就可以正常从外部网络访问以及容器内的 python 程序也能正常访问外部网络。 这会是什么问题呢?有人遇到过或者可以指指路么
1
zhoufan47 OP 以下为 dockerfile
# 使用官方 Python 轻量级镜像 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 设置时区为上海 (可选,方便看日志) ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 设置基础参数配置 # 复制依赖文件并安装 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制源代码 COPY main.py . # 如果有 config.json 也可以复制,但我们推荐用环境变量 # COPY config.json . # 创建必要的目录 RUN mkdir -p logs # 暴露端口 EXPOSE 8000 # 启动命令 CMD ["python", "main.py"] |