容器和镜像之间的关系1. 安装软件linux使用清华源安装 docker 和 docker composewindows装在C盘会容易满可以装在D盘Docker Desktop Installer.exe install -accept-license --installation-dirD:\Docker\Docker --wsl-default-data-rootD:\Docker\data Docker Desktop Installer.exe install --installation-dirD:\Docker已无长期稳定的镜像源挂梯即可2. 查看docker 版本号信息dockerversiondockerinfo3. docker 镜像命令查看自己服务器中docker 镜像列表dockerimages拉取镜像不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本dockerpull 镜像名dockerpull 镜像名:tag删除镜像------当前镜像没有被任何容器使用才可以删除#删除一个dockerrmi-f镜像名/镜像ID#删除多个 其镜像ID或镜像用用空格隔开即可dockerrmi-f镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID#删除全部镜像 -a 意思为显示全部, -q 意思为只显示IDdockerrmi-f$(dockerimages-aq)# 强制删除镜像dockerimagerm镜像名称/镜像ID# 删除所有缓存dockerbuilder prune-fdocker修改内容的保存docker commitdocker容器相当于是docker镜像类的一个实例对容器的修改实际上是对实例的修改但它并不只存在于内存而是在磁盘上有持久化存储除非是 --rm 运行的临时容器。dockercommit-m提交描述信息-a作者容器id 自己起镜像名:tag保存镜像到.tardockersave 镜像名:tag镜像保存在哪个位置与名字加载镜像.tardockerload镜像保存文件位置添加一个新镜像来改tagdockertag 源镜像名:TAG 想要生成新的镜像名:新的TAG4. docker 容器命令查看正在运行容器列表dockerpsdockerps-a新建一个容器镜像的实例# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 守护式运行 --name 给要运行的容器 起的名字 /bin/bash 交互路径dockerrun-it-d-p宿主机端口:容器端口-v宿主机文件存储位置:容器内文件位置--name容器名--gpusall--restartalways 镜像名:Tag /bin/bash进入容器# 启动容器dockerstart 容器ID/容器名# 重启容器dockerrestart 容器ID/容器名# 更换容器名dockerrename容器ID/容器名 新容器名# 进入容器的两种方式dockerexec-it容器名/容器ID /bin/bashdockerattach 容器名/容器ID容器导出和导入通过export 和 import 导出的容器形成镜像时, 该镜像只有一层。通过save 和 load 导出的镜像保留了原镜像所有的层次结构, 导出时原镜像有几层, 导入的时候就还是有几层。dockerexportcontainercontainer.tar.gzdockerimportcontainer.tar.gz container:v1退出容器#-----直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭exit# 优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭Ctrl p q停止容器dockerstop 容器名/容器ID# kill容器dockerkill容器ID/容器名删除容器#删除一个容器dockerrm-f容器名/容器ID#删除多个容器 空格隔开要删除的容器名或容器IDdockerrm-f容器名/容器ID 容器名/容器ID 容器名/容器ID#删除全部容器dockerrm-f$(dockerps-aq)容器文件拷贝—无论容器是否开启 都可以进行拷贝#从容器内 拷出dockercp容器ID/名称: 容器内路径 容器外路径#从外部 拷贝文件 到容器内dockercp容器外路径 容器ID/名称: 容器内路径5. dockerfile编写FROM quay.io/ascend/vllm-ascend:main-a3 RUN apt update \ apt install -y \ curl \ wget \ unzip \ screen \ tzdata \ vim \ less \ iproute2 \ git \ build-essential \ rm -rf /var/lib/apt/lists/* RUN git clone -b v0.3.11 --depth 1 https://github.com/kvcache-ai/Mooncake.git /opt/Mooncake RUN cd /opt/Mooncake \ sed -i s|https://go.dev/dl/|https://golang.google.cn/dl/|g dependencies.sh \ bash dependencies.sh -y ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \ echo $TZ /etc/timezone RUN rm -rf /tmp/* /var/tmp/* CMD [bash]x64平台下build arm64的镜像vim/etc/docker/daemon.json## 写入{features:{containerd-snapshotter:true}}## 重启dockersystemctl restartdockerdockerrun--rm--privilegedmultiarch/qemu-user-static--reset-pyesdockersystemdf-vdockerbuild--platformlinux/arm64-tquay.io/ascend/vllm-ascend:v0.18.0-a3-screen--outputtypedocker,dest/home/cc/vllm-ascend_v0.18.0-a3-screen.tar.dockerbuilder prune-af6. docker compose常用命令从 ​Docker Compose v2​ 开始官方将 docker-compose 命令改为了 ​docker compose​无横杠以更好地与 Docker CLI 集成并遵循 Docker 的命名规范。功能命令​版本检查​docker compose version​启动服务​docker compose up前台运行默认附加到终端 / docker compose up -d后台运行detached 模式​停止服务​docker compose stop​重启服务​docker compose restart​列出 Compose 使用的镜像​docker compose images​查看运行状态​docker compose ps​查看日志​docker compose logs​构建镜像​docker compose build​创建新容器运行一次性命令​docker compose run [service] [cmd]​拉取镜像​docker compose pull​执行命令​docker compose exec [service] [cmd]​检查配置​docker compose config​​复制文件/文件夹容器 → 本地​​docker compose cp [service]:[path] [local_path]​​复制文件/文件夹本地 → 容器​​docker compose cp [local_path] [service]:[path]​停止并移出所有容器和网络​docker compose down​停止并移出所有容器、网络和匿名卷​docker compose down -v​停止并移出所有容器、网络、匿名卷和所有镜像​docker compose down --rmi all