将conda环境打包为docker镜像

  1. 首先使用conda命令将虚拟环境下的依赖包打包成yaml文件

命令:

conda env export -n 虚拟环境名称 > 要输出到yaml文件的路径

例如:

conda env export -n pcdms > ./environment.yml

2.创建DockerFile文件

FROM : 从dockerhub上找的docker镜像Linux系统,在此基础上构建

例如:FROM ubuntu:22.04

RUN:构建时执行命令

例如:RUN apt-get update && apt-get install -y python3

COPY:复制文件到镜像

例如:COPY . /app

WORKDIR:设置工作目录

例如:WORKDIR /app

ADD:类似COPY,支持自动解压

例如:ADD app.tar.gz /app

ENV:设置环境变量

例如:ENV PORT=8080

EXPOSE:声明暴露端口

例如:EXPOSE 8080

CMD:容器启动默认命令,不可覆盖

例如:CMD "python", "app.py"

ENTRYPOINT:容器启动入口,不可覆盖

例如:ENTRYPOINT "python"

VOLUME:挂载数据卷

例如:VOLUME "/data"

关键区分:

  • 构建时 :FROM, RUN, COPY, ADD(生成镜像层)

  • 运行时 :CMD, ENTRYPOINT(容器启动时执行)

3.构建docker镜像

命令:docker build -t 容器名:版本号 .

例如:docker build -t pcdms:latest .

解释:在当前目录下的Dockerfile构建docker镜像

命令:docker build -t 容器名:版本号 -f Dockerfile所在路径 dockerfile所在目录

例如:docker build -t pcdms:latest -f pcdms-env-new/Dockerfile pcdms-env-new/

复制代码
# 指定 Dockerfile
docker build -f Dockerfile.prod -t myapp:prod .

# 传递构建参数
docker build --build-arg VERSION=1.0 -t myapp .

# 不使用缓存(强制重新构建)
docker build --no-cache -t myapp .

# 查看构建历史
docker history myapp:1.0

# 1. 查看镜像层详情
docker inspect myapp:1.0

# 2. 进入容器排查问题
docker run -it --rm myapp:1.0 /bin/sh

# 3. 查看构建过程(详细模式)
docker build --progress=plain -t myapp .

# 4. 仅构建到某一层(调试用)
docker build --target builder -t myapp:builder .

4.docker给镜像打标签(防止覆盖旧容器,容器和版本号更新到latest时)

命令:docker tag 旧容器名称:版本号 容器名称:新版本号

例如:docker tag pcdms:latest pcdms:old

相关推荐
mengge.cloud1 小时前
1019Namespace ,Contexts ,Kubernetes Pod
运维·服务器·网络·云原生·容器·kubernetes·云计算
江湖有缘1 小时前
Docker实战 | 使用Docker部署Imagor Studio图片编辑工具
java·docker·eureka
Xxtaoaooo1 小时前
私人日记不想散落在多个App?我用DailyTxT把记录、搜索和图片都放进自己的NAS
docker·nas·dailytxt
吴声子夜歌1 小时前
Docker入门与实战——Etcd(高可用的键值数据库)
数据库·docker·etcd
flytalei2 小时前
从 Docker Compose 到 K3s:逐浪博客 MySQL 数据迁移实战与一致性验证
mysql·docker·容器
周周爱喝粥呀2 小时前
详细教程:在 Docker 中部署 PostgreSQL 并使用 pgAdmin 可视化管理
docker·postgresql·容器
aruo4 小时前
Docker Compose 显示 Up,为什么网站还没准备好
docker
暖核4 小时前
从零理解 Kubernetes Pod:命名空间、生命周期、Pause 容器详解
云原生·容器·kubernetes
a5986524 小时前
ARM服务器部署Docker云手机,多开实例性能实测
服务器·arm开发·docker·云手机
川石课堂软件测试5 小时前
涨薪技术|0到1学会性能测试第8课-Analysis分析图
服务器·数据库·python·sql·jmeter·mysql·容器