/*--------------------CSS部分-------------------*/ /*--------------------JS部分-------------------*/

工作技巧

经典的安装torch指令

   pip install torch==2.0.1+11.7 torchvision==0.0.1+11.7 torchaudio==0.0.1+11.7 -f https://download.pytorch.org/whl/cu11.7/torch_stable.html

一、python环境部署

1、读取requirements.txt文件,将python包,离线下载到指定目录:mmlab_package

要实现将 requirements.txt 文件中的 Python 包离线下载到指定目录 mmlab_package,您可以按照以下步骤操作:

  1. 创建目录:首先,在您希望下载的位置创建目录 mmlab_package,如果还没有的话。

  2. 使用 pip download:使用 pip 命令的 download 子命令可以下载指定的包及其所有依赖包到本地。您可以使用 -r 标志来指定 requirements.txt 文件,并使用 -d 标志来指定下载目录。

    打开终端,导航到 requirements.txt 文件所在的目录,并运行以下命令:

    pip download -r requirements.txt -d /path/to/mmlab_package
    

    /path/to/mmlab_package 替换为您创建的实际下载目录。

    这将下载 requirements.txt 中指定的所有包及其依赖包到指定目录中。

2、实现pip从指定目录的安装包里离线安装

如果您有一系列已经下载好的 Python 包文件,您可以使用 pip-f(--find-links)选项来指定包的本地目录并进行离线安装。以下是操作步骤:

  1. 准备包文件:将您已经下载好的 Python 包文件放置在一个文件夹中,例如 /path/to/offline_packages

  2. 使用 pip install:在终端中,使用 pip 命令的 -f 选项来指定包文件所在的目录。假设您的包文件在 /path/to/offline_packages,您可以运行以下命令:

    pip install --no-index -f /path/to/offline_packages package_name
    

    package_name 替换为您想要离线安装的包的名称。

    如果您有一个 requirements.txt 文件,其中列出了多个包,您可以运行以下命令来一次性离线安装所有包:

    使用 --no-index 选项:有时,如果 pip 发现了索引缓存,它仍然会尝试从远程源进行安装。您可以尝试使用 --no-index 选项,这将阻止 pip 访问远程源:

    pip install --no-index -f /path/to/offline_packages -r requirements.txt
    

使用docker指令如何将当前环境保存成镜像

要将当前环境保存为Docker镜像,您可以按照以下步骤进行操作:

  1. 在当前环境中完成所需的配置和安装。
  2. 打开终端或命令行界面。

然后,您可以执行以下指令来创建Docker镜像:

docker commit <容器ID或容器名称> <镜像名称>:<标签>

在上述指令中,将以下内容替换为适当的值:

  • <容器ID或容器名称>:要保存为镜像的容器的ID或名称。
  • <镜像名称>:要创建的镜像的名称。
  • <标签>:为镜像指定一个标签,例如版本号。例如,您可以使用 latest 作为标签。

例如,假设您正在使用一个名为 my-container 的容器,并且要将其保存为一个名为 my-image 的镜像,可以执行以下指令:

docker commit my-container my-image:latest

请注意,使用docker commit命令创建镜像有一些限制和注意事项:

  • 此方法创建的镜像可能不会非常高效,因为它会包含容器中所有的文件和状态,包括不必要的文件和临时数据。
  • 最好的做法是使用Dockerfile来定义镜像的构建过程,以便更好地管理镜像的大小和组成。

如果您想更加规范和可管理地创建镜像,建议使用Dockerfile来定义构建过程。这将允许您将环境的配置、软件安装和设置存储在一个可重复的文件中,并以更精细的方式构建镜像。
如何创建一个容器,下面是一个示例:

docker run -it --shm-size='64gb' --name=openmmlab_test --network=host --privileged=true -v /usr/bin/cnmon:/usr/bin/cnmon -v /home/inspur/dataset2/mlu370:/data --device=/dev/cambricon_dev0:/dev/cambricon_dev0 --device=/dev/cambricon_ipcm0:/dev/cambricon_ipcm0 -device=/dev/cambricon_ctl -w /data openmmlab-pytorch-v1.15.0-torch1.9-ubuntu20.04:latest /bin/bash

docker run: Run a command in a new container.
-it: Allocate a pseudo-TTY and keep the stdin open, allowing interaction with the container.
--shm-size='64gb': Set the size of /dev/shm (shared memory) for the container. In this case, it's set to 64 gigabytes.
--name=openmmlab_test: Assign a name to the container, in this case, "openmmlab_test".
--network=host: Use the host's network stack inside the container.
--privileged=true: Give extended privileges to this container (not recommended for security reasons, use with caution).
-v /usr/bin/cnmon:/usr/bin/cnmon: Mount the host's /usr/bin/cnmon into the container's /usr/bin/cnmon.
-v /home/inspur/dataset2/mlu370:/data: Mount the host's /home/inspur/dataset2/mlu370 into the container's /data.
--device=/dev/cambricon_dev0:/dev/cambricon_dev0: Map the host's /dev/cambricon_dev0 to the container's /dev/cambricon_dev0.
--device=/dev/cambricon_ipcm0:/dev/cambricon_ipcm0: Map the host's /dev/cambricon_ipcm0 to the container's /dev/cambricon_ipcm0.
--device=/dev/cambricon_ctl: Map the host's /dev/cambricon_ctl to the container's /dev/cambricon_ctl.
-w /data: Set the working directory inside the container to /data.
openmmlab-pytorch-v1.15.0-torch1.9-ubuntu20.04:latest: Specifies the Docker image to be used for the container.
/bin/bash: The command to be run inside the container, in this case, starting a Bash shell.

在算能盒子的启动示例为:

docker run -it --shm-size='64gb' --name=sail_box_algo_main --network=host --privileged=true -v /dev:/dev -v /mnt:/mnt -td -w /mnt registry-svc:25000/library/arm64-ubuntu-20.04-py38:v1.0 /bin/bash

在创建容器后,启动和进入指令为:
docker start -i sail_box_algo_main

docker exec -it sail_box_algo_main /bin/bash

Docker常见的操作涵盖了构建、运行、管理和维护容器和镜像。以下是一些常见的Docker操作:

  1. 构建镜像
    • 使用 docker build 命令根据Dockerfile构建镜像。
    • 例如:docker build -t my-image:latest .
  2. 运行容器
    • 使用 docker run 命令创建并运行一个容器。
    • 例如:docker run -d --name my-container my-image:latest
  3. 查看容器
    • 使用 docker ps 查看运行中的容器。
    • 使用 docker ps -a 查看所有容器,包括已停止的。
  4. 进入容器
    • 使用 docker exec 进入正在运行的容器内部。
    • 例如:docker exec -it my-container /bin/bash
  5. 挂载卷
    • 使用 -v--volume 标志在容器和主机之间挂载卷。
    • 例如:docker run -v /host/path:/container/path my-image:latest
  6. 停止容器
    • 使用 docker stop 命令停止正在运行的容器。
    • 例如:docker stop my-container
  7. 删除容器
    • 使用 docker rm 命令删除一个或多个容器。
    • 例如:docker rm my-container
  8. 删除镜像
    • 使用 docker rmi 命令删除一个或多个镜像。
    • 例如:docker rmi my-image:latest
  9. 查看镜像
    • 使用 docker images 查看本地的Docker镜像列表。
  10. Docker Compose
    • 使用 Docker Compose 来管理和定义多容器应用的服务、网络和卷。
    • 编写 docker-compose.yml 文件来描述应用的组成和配置,然后使用 docker-compose 命令管理多容器应用。
  11. 清理不使用的资源
    • 使用 docker system prune 清理不再使用的容器、镜像和卷。
    • 注意:此命令将清理掉不再使用的资源,因此请谨慎使用。

这只是一些常见的Docker操作,实际应用中可能会涉及更多操作,根据您的需求和场景进行调整。

posted @ 2023-10-23 17:27  bldong  阅读(12)  评论(0编辑  收藏  举报