docker使用

本文详细介绍了如何使用Docker命令行创建一个名为my_pytorch_container的容器,配置了PyTorch1.8.1与CUDA11.1环境,并演示了如何查看、管理容器和镜像。此外,还提及了如何在容器中执行交互式bash命令。
摘要由CSDN通过智能技术生成

创建镜像:

alias=`whoami | cut -d'.' -f2`; docker run -it --name=my_pytorch_container --runtime=nvidia --ipc=host --privileged -v /home/${alias}/data:/home/${alias}/ pytorch/pytorch:1.8.1-cuda11.1-cudnn8-devel bash

下列解释由chatgpt生成: 

  1. alias=whoami | cut -d'.' -f2``:

    • whoami 用于获取当前登录用户的用户名。
    • cut -d'.' -f2 用于从用户名中提取第二个字段,这通常是用户的别名或缩写。这个别名将被用作后续命令中的变量。
  2. docker run -it --name=my_pytorch_container --runtime=nvidia --ipc=host --privileged -v /home/${alias}/data:/home/${alias}/ pytorch/pytorch:1.8.1-cuda11.1-cudnn8-devel bash:

    • docker run: 启动一个 Docker 容器。
    • -it: 以交互模式运行容器,使用户能够与容器进行交互。
    • --name=my_pytorch_container: 为容器指定一个名字,这里是 "my_pytorch_container"。
    • --runtime=nvidia: 使用 NVIDIA Container Runtime,表明该容器将会使用 NVIDIA GPU。
    • --ipc=host: 共享主机的 IPC 命名空间,这是为了在容器内运行一些需要共享内存的应用程序。
    • --privileged: 赋予容器运行时更多的权限,通常在需要进行一些特殊操作时使用。
    • -v /home/${alias}/data:/home/${alias}/: 将主机上 /home/${alias}/data 目录映射到容器内的 /home/${alias}/ 目录,实现主机和容器间的数据共享。
    • pytorch/pytorch:1.8.1-cuda11.1-cudnn8-devel: 使用的 PyTorch Docker 镜像,版本为 1.8.1,基于 CUDA 11.1 和 cuDNN 8,包含开发工具。
    • bash: 在容器内启动 Bash shell,允许用户与容器进行交互。
docker ps       #查看正在运行的容器信息
docker ps -a    #查看所有的容器信息
#包含names,没有size
CONTAINER ID    IMAGE                                        COMMAND    CREATED        STATUS    PORTS    NAMES
de0d768612d6    pytorch/pytorch:1.8.1-cuda11.1-cudnn8-devel  "bash"     2 hours ago    Up 11 minutes    my_pytorch_container 
ffe3fdd3a4d5    hello-world                                  "/hello"   4 hours ago  Exited (0) 4 hours ago    ecstatic_fermi


docker images    
#查看所有本地主机上的镜像,可以使用docker image ls代替
#不包含names,有size
REPOSITORY        TAG                           IMAGE ID       CREATED        SIZE
hello-world       latest                        d2c94e258dcb   8 months ago   13.3kB
pytorch/pytorch   1.8.1-cuda11.1-cudnn8-devel   7afd9b52a068   2 years ago    16.5GB
docker start my_pytorch_container    #启动已有的容器
docker exec -it my_pytorch_container bash
  • docker exec: 这是 Docker 命令的一部分,用于在正在运行的容器中执行命令。

  • -it: 这是两个选项的组合,用于指定在交互模式下运行命令。-i 表示交互式,保持标准输入打开,而 -t 表示在一个伪终端(pseudo-TTY)中运行,使得用户可以与容器的 shell 进行交互。

  • my_pytorch_container: 这是容器的名称或容器的ID,用于指定在哪个容器中执行命令。

  • bash: 这是在容器内执行的命令。在这个例子中,它启动了一个 Bash shell,允许你进入容器并与其进行交互。

或者直接 

docker start -i my_pytorch_container

 在这个命令中,-i 表示交互式。这样启动容器后,你将进入容器的主进程的交互式 shell。请注意,这假设容器内有一个可以用于交互的 shell。

注意:镜像和容器不一样(以下仍然是chatgpt的解释)

比如以下命令:

docker run -it ubuntu:latest /bin/bash

如果本地没有 ubuntu:latest 镜像,Docker 将自动从 Docker Hub 拉取最新的 ubuntu 镜像。这确保了您在运行容器时能够使用所需的镜像,而无需手动提前下载。

在拉取完成后,Docker 将使用远程拉取的镜像创建容器,并执行 /bin/bash 命令。如果希望在运行容器之前手动拉取镜像,可以使用 docker pull 命令:

docker pull ubuntu:latest
docker run -it ubuntu:latest /bin/bash

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值