• 【工程实践】Docker使用记录


    前言

            服务上线经常需要将服务搬到指定的服务器上,经常需要用到docker,记录工作中使用过dcoker指令。

    1.写Dockerfile

    1.1 全新镜像

    1. FROM nvidia/cuda:11.7.1-devel-ubuntu22.04
    2. ENV WORKDIR=/data/Qwen-14B-Chat
    3. WORKDIR $WORKDIR
    4. ADD . $WORKDIR/
    5. RUN apt-get update && apt-get -y --no-install-recommends install vim curl wget build-essential python3.10 python3-pip && update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1 && pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    6. RUN pip install flash_attn-2.3.3+cu117torch1.13cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
    7. #CMD ["sh", "-c", "python3 api.py -c /data/model/Qwen-7B-Chat -p 9092 -n 0.0.0.0"]
    8. entrypoint tail -f /dev/null

    1.2 复制镜像

    1. FROM qwen-14b:v1.0
    2. #ENTRYPOINT ["tail", "-f", "/dev/null"]
    3. COPY ./api.py /data/Qwen-14B-Chat/api.py
    4. entrypoint tail -f /dev/null

    2.建立docker镜像

    docker build -f /ssd/dongzhenheng/Qwen-14B-Chat/Dockerfile -t qwen-1b:v1.0 .  

    3.查看docker 镜像id

    docker images

     4.根据镜像id 启动docker

            使用docker run 启动镜像。设置外挂载模型/ssd/dongzhenheng/LLM/Qwen-14B-Chat/,映射到容器内/data/model/Qwen-14B-Chat路径。

    docker run --gpus all -v /ssd/dongzhenheng/LLM/Qwen-14B-Chat/:/data/model/Qwen-14B-Chat -p 9093:9093 -d 695aa69fcf3a /bin

    5.使用docker ps查看启动的容器id

    docker ps

    6.根据容器id进入容器

       容器id为2733d1a26fd0

    docker exec -it 2733d1a26fd0 bash

    7.查看文件容器文件

    cat aip.py

    8.启动服务

    python api.py -c /data/model/Qwen-14B-Chat -p 9093 -n 0.0.0.0

    9.退出容器

    control+A+D

    10.停止容器

    docker stop 529d9dee7ed1

    11.删除镜像

    1. docker rm 容器id
    2. docker rmi 镜像id

    12.docker save 

            使用 docker save 命令,可以将镜像保存为一个 tar 文件,这个文件中包含了镜像的所有层和元数据。可以将其复制到其他任何安装了 Docker 的机器上,并使用 docker load 命令加载回来。

    docker save 695aa69fcf3a -o qwen-14b.tar

    13.docker load

       docker load 是 Docker 命令行工具中用于加载保存在文件中的 Docker 镜像的命令。它可以将之前使用 docker save 命令保存的 Docker 镜像加载回来。

    docker load -I qwen-14b.tar

    14.docker tag

       docker tag 是 Docker 命令行工具中用于给镜像打标签的命令。它可以将一个镜像标记为新的标签,以便更容易地识别和管理。

    1. docker tag qwen-14b qwen-14b:v1.0

    15. docker login

       docker login 是 Docker 命令行工具中用于登录到 Docker 镜像仓库的命令。它允许用户使用给定的用户名和密码进行身份验证,以便在 Docker 镜像仓库中执行操作,例如拉取和推送镜像。

         在执行 docker login 命令时,需要提供有效的用户名和密码,以通过身份验证并登录到 Docker 镜像仓库。成功登录后,终端会显示一条消息,指示登录成功,并且 Docker 会将所登录的仓库地址和凭证存储在 ~/.docker/config.json 文件中,以便后续使用。

    docker login -u myusername -p mypassword docker.io

    16.上推镜像

       docker push 是 Docker 命令行工具中用于将本地 Docker 镜像上传到 Docker 镜像仓库的命令。在执行 docker push 命令之前,需要先使用 docker login 命令登录到 Docker 镜像仓库。

    docker push 用户名/仓库名称/myimage:v1.0

         这将上传名为 myimage 的本地镜像到 Docker Hub,并将其标记为 v1.0。请确保将 用户名/仓库名称 和 myimage 替换为实际的用户名和镜像名称。

  • 相关阅读:
    《视觉 SLAM 十四讲》V2 第 4 讲 李群与李代数 【什么样的相机位姿 最符合 当前观测数据】
    【AIGC】Stable Diffusion Prompt 每日一练0916
    基于工业网关的储罐在线监测系统解决方案
    【MySQL】深入理解MySQL索引原理
    Spark大数据分析与实战笔记(第一章 Scala语言基础-4)
    什么是泛型约束?
    生活无趣感的成因与破解之道
    Halcon (4):如何开始自学
    现代机器学习(ML)技术在医疗成像领域的新应用
    docker Harbor的概述部署
  • 原文地址:https://blog.csdn.net/weixin_44750512/article/details/134372656