跳到主要内容

Docker 个人案例记录

这页专门放我自己的命令片段和场景记录。它们未必适合直接复制到别的环境里,但保留在这里比混在主线教程里更合适。

Ollama 容器示例

把容器 11434 端口映射到宿主机 8080,并启用 GPU:

docker run -d \
--gpus all \
-v ollama:/root/.ollama \
-p 8080:11434 \
--name ollama_new \
ollama/ollama

这个命令的重点是:

  • GPU 直通:--gpus all
  • 数据持久化:-v ollama:/root/.ollama
  • 端口映射:-p 8080:11434

手工配置容器后做快照

某些场景下,我会先在容器里手动把环境调到能用,再临时保存成镜像:

docker commit ubuntu_llama_factory ubuntu_base:latest
docker save -o ubuntu_base.tar ubuntu_base:latest

在别的机器导入:

docker load --input /path/to/your/image.tar

这类做法更偏临时方案。后面如果这个环境要长期保留,还是应该回到 Dockerfile。

把本地文件复制进正在运行的容器

docker cp /root/llama_factory.zip singularity_llama_factory:/miniconda3/envs

这个命令适合一次性投递文件,不适合作为长期同步机制。

再次进入容器

docker ps
docker exec -it container_id_or_name bash

如果镜像里没有 bash

docker exec -it container_id_or_name sh

Ubuntu 基础环境里我常装的一批工具

apt-get update
apt-get install -y \
vim \
git \
build-essential \
wget \
net-tools \
sudo

某些偏编译或容器工具链的环境里,我还会补这一批依赖:

sudo apt-get update && sudo apt-get install -y \
build-essential \
libssl-dev \
uuid-dev \
libgpgme11-dev \
squashfs-tools \
libseccomp-dev \
wget \
pkg-config \
git \
cryptsetup-bin

这页的使用原则

  • 这里允许出现特定容器名、项目名、路径名
  • 主线页面只保留通用方案
  • 如果某个个人案例后来变成稳定模式,再考虑抽回主线文档

关联阅读