最近,因为项目需要,我用Docker部署了一个 Python写的小项目。这个项目虽然小,但是一些Docker的基本操作也都涵盖了。
所以,我就整理了一下,主要包括以下几个步骤 :
- 配置环境(有一些依赖手动安装比较方便,此步骤可省略)
- 根据Dockerfile打包服务镜像(打包依赖环境和项目代码,此步骤不可省略)
希望对刚接触 Docker 的朋友有一些帮助。
一、准备工作:下载基础镜像
我们以 Ubuntu 作为基础镜像:
docker pull ubuntu
二、启动临时容器并配置环境
docker run -itd -v ./task_ikun:/tmp/task_ikun -p 6666:6666 --name esrcr ubuntu
参数解释:
-v ./task_ikun:/tmp/task_ikun 将宿主机的目录: ./task_ikun挂载到容器的目录:/tmp/task_ikun-p 6666:6666端口映射--name esrcr 容器名称
# 进入容器docker exec -it esrcr /bin/bash# 安装 Python3.12 和 pipapt update && apt install -y python3.12 python3-pip# 安装项目依赖(使用清华源加速)pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --break-system-packages
三、将容器打包为镜像
配置好环境后,停止容器并提交为新镜像:
docker stop esrcrdocker commit esrcr task_ikun:v1
现在你有了一个包含 Python 环境和项目依赖的镜像 task_ikun:v1。
四、编写 Dockerfile
新建 Dockerfile,该文件需要位于项目根目录下。内容如下:
FROM task_ikun:v1COPY . /tmp/task_ikun/WORKDIR /tmp/task_ikun/ENTRYPOINT ["python3", "ikunTask.py"]
将项目文件复制到镜像内,并设置启动命令
五、构建最终镜像并启动容器
# 构建镜像docker build -t task_ikun_server:v1 .# 启动容器docker run -itd --name task_ikun_app -p 6666:6666 task_ikun_server:v1# 查看日志确认运行正常docker logs -f task_ikun_app
六、导出/导入镜像(迁移或备份)
导出镜像为 tar 包:
docker save -o ./task_ikun_server.tar task_ikun_server:v1
从 tar 包导入镜像:
docker load -i ./task_ikun_server.tar
七、使用 docker-compose 管理服务(方便管理与维护)
创建 docker-compose.yml:
services:task_ikun:image:task_ikun_server:v1container_name:task_ikun_appports:-"6666:6666"restart:unless-stoppedenvironment:-TZ=Asia/Shanghai
常用管理命令:
# 启动服务docker-compose up -d# 停止服务docker-compose down# 查看日志docker-compose logs -f# 重启服务docker-compose restart# 查看运行状态docker-compose ps
总结
OK,顺利执行完以上步骤,我们就已经完成了服务的 Docker 容器化部署。
这套流程适合大多数 Python 项目的容器化部署,可以根据实际的项目场景自行调整基础镜像、Python 版本和端口配置。