教你用Docker部署TensorFlow环境,入门不踩坑

为什么要用Docker部署TensorFlow?

TensorFlow 是流行的深度学习框架,但直接在服务器上安装往往面临依赖冲突、版本不兼容、环境隔离难等问题。
Docker 通过容器技术,可以让你一键拉取官方封装的 TensorFlow 镜像,秒级获得干净、可复用的运行环境,且不会影响宿主机上的其他软件。

如果你刚接触服务器运维,对 Python 虚拟环境还不太熟悉,用 Docker 部署 TensorFlow 绝对是最省心的选择

第一步:确认服务器环境和安装Docker

操作系统要求:推荐 Ubuntu 20.04/22.04 LTS 或 CentOS 7/8,内核版本不低于 3.10(Docker 依赖)。
如果你用宝塔面板,建议在面板的“终端”里操作。

安装 Docker(以 Ubuntu 为例):

# 更新软件包索引
sudo apt update
# 安装依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 再次更新并安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 启动 Docker 并设为开机自启
sudo systemctl start docker
sudo systemctl enable docker

验证 Docker 安装

sudo docker version

如果看到 Client 和 Server 版本信息,说明 Docker 运行正常。注意:如果是 CentOS,命令基本一致,只是包管理器换为 yum

第二步:拉取TensorFlow镜像

TensorFlow 官方镜像分为 CPU 版和 GPU 版。

  • CPU版(适合没有 NVIDIA GPU 的服务器):
  sudo docker pull tensorflow/tensorflow:latest
  • GPU版(需要宿主机安装 NVIDIA 驱动和 nvidia-docker,后续避坑会讲):
  sudo docker pull tensorflow/tensorflow:latest-gpu

如果你不确定,先用 CPU 版。拉取完成后可以用 sudo docker images 查看镜像列表。

第三步:启动容器并测试TensorFlow

启动容器时,建议挂载一个本地目录,方便把代码和数据放入容器。

sudo docker run -it --rm \
  -v /home/your_user/tf_workspace:/tf/workspace \
  -p 8888:8888 \
  tensorflow/tensorflow:latest bash

参数说明:

  • -it:交互式终端。
  • --rm:退出容器后自动删除容器(不保留状态,适合测试)。
  • -v:将宿主机的 /home/your_user/tf_workspace 挂载到容器内的 /tf/workspace
  • -p 8888:8888:映射端口(如果你要用 Jupyter Notebook)。

进入容器后,测试 TensorFlow 是否可用:

python -c "import tensorflow as tf; print(tf.__version__)"

正常会输出版本号,例如 2.16.1

如果想用 GPU 版,确保宿主机已安装 NVIDIA 驱动,并安装 nvidia-docker2(见避坑部分)。
启动命令加 --gpus all

sudo docker run -it --rm --gpus all \
  -v /home/your_user/tf_workspace:/tf/workspace \
  tensorflow/tensorflow:latest-gpu bash
# 在容器内验证GPU
python -c "import tensorflow as tf; print('GPU可用:', tf.config.list_physical_devices('GPU'))"

如果能列出 GPU 设备,说明 GPU 加速生效。

常见问题与避坑指南

Q1:拉取镜像很慢怎么办?

更换国内镜像源(如阿里云、中科大)。
编辑 /etc/docker/daemon.json(没有则创建):

{
  "registry-mirrors": ["https://docker.m.daocloud.io", "https://mirror.ccs.tencentyun.com"]
}

保存后 sudo systemctl restart docker 再拉取。

Q2:启动 GPU 容器报错 "could not select device driver"?

原因:未安装 nvidia-docker2。
安装步骤:

# 添加 NVIDIA Docker 仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart docker

之后再次启动容器即可。

Q3:容器退出后代码数据会丢吗?

不会
只要挂载了宿主机目录(-v),代码和数据都在宿主机上。
容器本身建议用 --rm 丢弃,下次重新运行即可。

Q4:如何用 Jupyter Notebook 开发?

启动容器时映射端口并指定命令:

sudo docker run -it --rm \
  -v /home/your_user/tf_workspace:/tf/workspace \
  -p 8888:8888 \
  tensorflow/tensorflow:latest

启动后容器内会自动运行 Jupyter,复制输出的 token 地址,在浏览器打开即可。

效果验证:跑一个简单模型

进入容器后,创建一个 Python 文件 test.py

import tensorflow as tf
from tensorflow.keras import layers

# 构建一个最简单的全连接网络
model = tf.keras.Sequential([
    layers.Dense(128, activation='relu', input_shape=(784,)),
    layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 打印模型结构
model.summary()

执行:python test.py,如果看到模型参数摘要,说明 TensorFlow 部署成功,可以正式开始你的深度学习项目了。

如果你在操作中遇到其他问题,优先检查 Docker 版本和镜像标签,大部分报错都可以通过搜索引擎加上错误代码定位。
祝部署顺利!

分享到:
上一篇
Linux内存泄漏排查方法:从症状到根因的服务排查教程
下一篇
服务器AI应用低成本部署:低成本部署AI应用
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意