ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Docker使用笔记

Docker使用笔记

1. 创建镜像

1.1 从dockerhub上拉取

docker pull ****:***

1.2 保存镜像

docker save -o *.tar image:tag

1.3 从镜像文件中创建:

docker load < *.tar

1.4 更新镜像:

docker commit containerid image:tag

2. 创建容器

2.1 英伟达GPU下:

docker run --gpus '"device=0"' --net=host -it -v /:/mnt --shm-size=12g --memory-swap=-1 --name=containername image:tag bash

-v:挂载路径,宿主机路径:容器路径

--net:网络端口映射,=host表示容器网络和宿主机完全联通。

-u: 用户权限,设置root表示该镜像用户权限为root用户,防止镜像中权限限制。

注意:谨慎使用docker exec进入容器保存文件。

使用docker exec -it ID bash进入容器时保存文件一定不要保存文件在容器环境中,否则退出时文件会消失。

2.2 昇腾NPU下:

Atlas800T A2服务器:npu 为Ascend910B3(8*64GB)

docker run -it --net=host \ -v /home/jiao/train_example/:/home/yolo/ \ --name=yolov11n \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ --device=/dev/davinci_manager \ --device=/dev/hisi_hdc \ --device=/dev/devmm_svm \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /usr/local/sbin:/usr/local/sbin \ -v /etc/hccn.conf:/etc/hccn.conf \ yolov11-train:v1 \ /bin/bash

3. Dockerfile创建

FROM python:3.10-slim WORKDIR /app # 安装系统依赖 RUN apt-get update && apt-get install -y \ gcc \ g++ \ && rm -rf /var/lib/apt/lists/* # 设置环境变量 ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV TZ=Asia/Shanghai ENV PYTHONPATH=/app ENV WORKING_DIR=/app/workspace # 复制项目核心文件/文件夹 COPY apps/api /app/apps/api COPY core /app/core # 默认启动命令 CMD ["python", "main.py"]

4. docker-compose创建

services: ppt_backend: image: ppt_assistant:v1 //依赖的镜像 container_name: ppt_backend //创建容器名称 volumes: //路径映射 - ./ppt-assistant/workspace:/app/workspace - ./ppt-assistant/apps/api:/app/apps/api - ./ppt-assistant/core:/app/core - ./ppt-assistant/config:/app/config privileged: true network_mode: "host" working_dir: /app command: uvicorn apps.api.main:app --reload --host 0.0.0.0 --port 6000 ppt_celery: image: ppt_assistant:v1 container_name: ppt_celery volumes: - ./ppt-assistant/workspace:/app/workspace - ./ppt-assistant/apps/api:/app/apps/api - ./ppt-assistant/core:/app/core - ./ppt-assistant/config:/app/config privileged: true network_mode: "host" working_dir: /app command: celery -A apps.api.celery_app worker --loglevel=info --concurrency=2 --pool=solo -Q celery,template_analysis,ppt_generation networks: ppt-net: driver: bridge

5.加速拉取

docker pull nvidia/cuda:12.2.2-devel-ubuntu20.04 ##加速版: docker pull hub.1panel.dev/nvidia/cuda:12.2.2-devel-ubuntu20.04

配置镜像加速器:

tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.nju.edu.cn", "https://mirror.baidubce.com" ] } EOF

重启服务:

systemctl daemon-reload systemctl restart docker

有时加速源太多会拖慢速度导致超时,这时要减少配置留下两个即可:

tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.nju.edu.cn" ] } EOF
返回列表