赞
踩
神经网络项目由x86cpu的linux环境移到arm cpu架构上运行,使用docker进行测试以及环境配置。
Ubuntu、Debian、CentOs、Windows、MacOs
Docker commit 是将正在运行的容器保存为新的镜像的一种方法。将当前容器的状态快照成一个新的镜像。优点快速和方便,缺点占用空间大、冗余、效率低、可重复性弱、容易出错。
- 从镜像运行容器,实际上是在镜像顶部上加了一层可写层,所有对容器文件系统的修改,都在这一层中进行,不影响已经存在的层。从容器构建镜像,实际上是把容器的顶层固化到镜像中。镜像的体积只会增大,不会减小。
# 将容器转换为镜像
docker commit 容器id 镜像名称:版本号
# 将镜像打包为压缩包,用于传输
docker save -o image_name.tar image_name
# 将镜像压缩包解压为镜像
docker load -i image_name.tar
Dockerfile 是一种文本文件,它包含了一系列指令和配置,用于自动化构建 Docker 镜像。优点灵活性和可重复性。比docker commit更具优势。
- 可重复性:使用 Dockerfile 可以完全复制镜像构建过程,确保每次构建的结果一致。
- 可扩展性:Dockerfile 允许您定义容器的多个层次,并在每个层次上进行构建和修改。轻松地添加、删除或更新组件。
- 可维护性:Dockerfile 是一个文本文件,可以与代码存储在同一版本控制系统中,并且可以通过版本控制工具进行追踪和管理。这使得团队成员可以共同协作和维护镜像构建过程。
仓库可看成一个代码控制中心,用来保存镜像 Docker Hub(https://hub.docker.com)
FROM acltransformer:base # ubuntu:18.04 指定父镜像,指定dockerfile基于哪个镜像进行创建以华为昇腾172.16.15服务器为例 RUN apt-get update && apt-get install -y \ # 执行命令 wget \ language-pack-zh-hans && \ mkdir /data WORKDIR /data # 工作目录 COPY Dockerfile_dir ./Dockerfile_dir # 复制文件 这是个文件夹 WORKDIR /data/Dockerfile_dir/npu_tools RUN /bin/bash Miniconda3-latest-Linux-aarch64.sh -b -p /opt/conda && \ echo 'export PATH="/opt/conda/bin:$PATH"' >> ~/.bashrc && \ RUN conda create -n py37 python=3.7 ENV PATH /opt/conda/envs/chatglm_py37/bin:$PATH # 环境变量 RUN /bin/bash npu_env.sh && \ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ENTRYPOINT ["/bin/bash", "-c", "/opt/conda/envs/py37/bin/python3.7 main.py"] # 设置容器的入口点
在编写 Dockerfile 时,通常会遵循一个原则:尽可能使步骤少而有效。
- 减小镜像大小:每个步骤都会在镜像中创建一个新的层次,并增加镜像的大小。较少的步骤意味着较少的层次,从而减小了镜像的总体大小。
- 提高构建速度:每个步骤都需要执行一些操作,较少的步骤意味着较少的操作,从而减少了构建过程的时间。
- 简化维护和调试:较少的步骤意味着较少的代码和配置,使得维护和调试变得更加简单。
使用下面命令来用dockerfile创建docker镜像。
docker build -t chatglm_npu:v2 -f Dockerfile .
docker build --platform linux/arm64/v8 -t chatglm_npu:v1 -f Dockerfile .
docker build --platform linux/amd64 -t dispatch:v1 -f Dockerfile .
# 注册qemu解释器(宿主机运行)
docker run --rm --privileged multiarch/qemu-user-static:register --reset
# 获取qemu-aarch64-static文件
https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-5/qemu-aarch64-static.tar.gz
/aidata/images/qemu-aarch64-static
tar xzvf qemu-aarch64-static.tar.gz
chmod +x /usr/bin/qemu-aarch64-static
docker run --name xxx -dit -v ./qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu:18.04
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。