工作日志(1)
1.概述Docker本质镜像Image 装好环境的压缩包比如Python PyTorch CUDA 一体包。容器Container 独立的虚拟电脑你可以在里面跑代码、装库、训练模型和你本机完全隔离。Docker 一键拥有任何环境永不报错永不冲突。2.常用命令首先得在docker的官网下载其软件安装相应版本的Docker。Docker 入门教程 - 阮一峰的网络日志查看基础配置问题# 查看docker的版本 docker --version#跑docker的 hello world docker run --rm hello-world常用命令#查看本地的镜像 docker images# 以我上述已存在的基础镜像为例这样会进入python编译框 docker run -it --name my-python-env -v %cd%:/app python:3.10-slim #建议直接使用该步骤更为明确 docker run -it --name my-python-env -v %cd%:/app python:3.10-slim /bin/bash #参数说明 -it 交互式终端 让你能进入容器敲 Linux 命令像用本地终端一样。 --name my-python-env 给容器起名字 方便后续启停、进入不用记长 ID -v %cd%:/app 目录挂载 把你当前的 C:\Users\Lenovo 文件夹映射到容器内的 /app 目录 → 你本地改代码容器里直接生效不用来回传文件。 python:3.10-slim 指定镜像 用你已经下载好的这个 Python 环境 最后加了 /bin/bash这是强制告诉 Docker“直接给我一个 Linux 终端不要直接进 Python”注意重点0容器环境 全新空白 Linux。需要什么包则需要在容器中再装一遍。1.此处的app对应的是windows电脑的进入前目录C:\Users\Lenovo。2.C:\Users\Lenovo\workspace\test\test_env.py /app/workspace/test/test_env.py#查看正在执行的docker docker ps -a #删除指定的docker docker rm my-python-env本质Conda创建一个环境 → 装包 → 隔离 PythonDocker创建一个容器 → 装系统 装库 →整个系统都隔离Conda 环境只隔离Python 包你的系统还是 Windows / 本机 LinuxC 版本、系统库、显卡驱动、操作系统 都共享Docker 容器隔离整个操作系统 所有库 所有文件 所有环境等于一台全新的独立 Linux 虚拟机轻量版正确规则记住这一句永远不踩坑docker 开头的所有命令 → 必须在 Windows CMD 里输python /pip/cd → 在容器里输案例操作1.删除相应的别的环境从0 开始docker stop $(docker ps -aq) docker rm $(docker ps -aq) docker rmi $(docker images -aq) docker system prune -f2.运行容器并进入/app#运行容器 docker run -it --name myai -v %cd%:/app python:3.10-slim /bin/bash #进入app安装cpu cd app pip install numpy pandas torch --index-url https://download.pytorch.org/whl/cpu3.运行我的python脚本cd /app python workspace/test/test_env.py3.案例实践1.本地docker的使用重新开始#首先彻底删除本地的所有容器、镜像、缓存等 # 1. 停止所有正在运行的容器 docker stop $(docker ps -aq) # 2. 删除所有容器彻底清空 docker rm $(docker ps -aq) # 3. 删除所有镜像彻底清空 docker rmi $(docker images -q) # 4. 清理 Docker 所有垃圾缓存 docker system prune -a --volumes -f#查看当前容器以及镜像 #5.查看容器 docker ps -a #6. 查看镜像 docker images#7.拉取官方的纯净python环境案例 docker pull python:3.10-slim #8.创建一个永久的开发性容器 docker run -it --name wjj -v C:\Users\Lenovo:/app python:3.10-slim /bin/bash /* --name wjj → 给容器起固定名字以后永远用它 -v C:\Users\Lenovo:/app → 把你本地代码挂载进容器 python:3.10-slim → 使用干净环境 /bin/bash → 进入终端可以操作 */ #9.在容器中安装包并处理依赖 pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy1.26.4 pandas2.2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple #10.使用新容器中的新环境运行本地脚本 cd /app python workspace/test/test_env.py#相应路径下的代码 import numpy as np import pandas as pd print(环境wjj_test) print(NumPy 版本, np.__version__) print(Pandas 版本, pd.__version__) print(✅ VS Code Conda 完全正常)#11. 退出容器之后下次使用直接启动打开即可 exit #12.打开电脑然后恢复环境 docker start wjj docker exec -it wjj /bin/bash2.异地docker复用一键部署#1.查看本地容器名称 docker ps -a #2.将容器打包成镜像 docker commit wjj my-algo-env:v1.0 #详解docker commit 【容器名】 【镜像名】:【版本号】#3.查看打包好的镜像/容器 docker images docker ps -a #4.将本地镜像打包好发送给服务器/云端 docker save -o my-algo-env-v1.0.tar my-algo-env:v1.0 /* 你现在在 C:\Users\Lenovo 下执行的命令所以文件就在 C:\Users\Lenovo\my-algo-env-v1.0.tar */也可以直接在PowerShell 执行#查看本地镜像包 dir my-algo-env-v1.0.tar删除本地所有环境模拟换设备#删除本地所有镜像 docker stop $(docker ps -aq) docker rm $(docker ps -aq) docker rmi $(docker images -q) #重新加载镜像 docker load -i my-algo-env-v1.0.tar #运行容器环境直接回复有个坑此处没有挂载所有看不到 docker run -it --name wjj my-algo-env:v1.0 /bin/bash #正确步骤需要映射本地的路径 docker run -it --name wjj-new -v C:\Users\Lenovo:/app my-algo-env:v1.0 /bin/bash错误没有挂载本地映射正确4.总结本章为笔者首次搭建docker环境并尝试跑通本地环境以及代码具有深刻意义。