Docker 常用命令

DOCKER 常用命令

根据镜像创建:sudo docker create -it img_name

启动容器:sudo docker start con_name

停止容器:docker stop con_name

删除容器:docker rm con_name

改名:docker rename old_name new_name

进入容器:sudo docker exec -it con_name bash

退出容器:exit

查看运行中的容器:sudo docker ps

Dokcer使用nvidia

前提是电脑里安装了 nvidia-docker

  • docker run --runtime=nvidia
  • nvidia-docker run

记录一次完整创建docker过程

一种方法

  1. sudo docker images #查看当前系统的docker镜像

  2. sudo docker create -it --runtime=nvidia -v /home/groupe/:/prj img_id # 根据镜像创建新的容器,单纯创建

    -v 是挂载虚拟目录,注意如果 把目录挂载到容器的 /home 目录,那么有些 bash 命令会失效,不能全部覆盖

  3. sudo docker ps -a #找到刚刚创建的容器(STATUS=Created)

  4. sudo docker start con_id #启动容器

  5. sudo docker exec -it con_id bash #进入容器

  6. exit 退出容器

第二种方法

还有一种直接利用镜像创建一个容器:

  • 创建临时容器(当退出容器自动清除自己)

    sudo docker run -it --runtime=nvidia --rm -v /home/groupe/:/prj img_id bash

Docker 非 root 用户使用

  1. 查看系统是否有 docker 组,cat /etc/group

  2. 确保 docker 的服务是运行在 docker 用户组

    ll /var/run/docker.sock

    输出:srw-rw---- 1 root docker 0 12月 3 10:08 /var/run/docker.sock=

    说明运行在 docker组

    上面ll路径名可以通过查看 service docker status 服务脚本中的运行路径获得 docker socket 的执行路径

  3. 如果 docker 服务运行在 docker 用户组,那么请继续

  4. 使用有 sudo 权限的账户执行下面命令,把需要使用docker服务的用户加入到 docker 组

    sudo usermod -aG docker $USER

  5. 使用有 sudo 权限的用户,重新启动 docker 服务

    sudo systemctl restart docker

  6. 切换到没有sudo权限的用户,执行 docker info 如果输出信息则代表配置成果,若没有成功

    1. 请检查是否正确加入到 docker 用户组 ,查看 cat /etc/group | grep docker 输出里面有没有此用户
    2. 如果在 docker 用户组,那么需要切换到这个用户组,进而执行 docker 命令 newgrp docker

Docker 19.03 使用 GPU

启用所有GPU 创建一个临时容器

docker run -it --rm --gpus all img_id bash

--gpus 参数解释:官方

#### Test nvidia-smi with the latest official CUDA image
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi

# Start a GPU enabled container on two GPUs
$ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi

# Starting a GPU enabled container on specific GPUs
$ docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
$ docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi

# Specifying a capability (graphics, compute, ...) for my container
# Note this is rarely if ever used this way
$ docker run --gpus all,capabilities=utility nvidia/cuda:9.0-base nvidia-smi

本机ubuntu docker + GPU:
https://blog.csdn.net/hpf247/article/details/80078240

docker run -tid --gpus all -v /media/tianyu/Software/docker_storage:/share --name ubuntu -p 23:22 ubuntu
启动命令: docker exec -ti ubuntu /bin/bash

本机运行 tf2-gpu docker

docker run --gpus all -itd -v /media/tianyu/Software/docker_storage:/share --name tf2 -w /share -p 9001:8001 tensorflow/tensorflow:latest-gpu
启动命令: docker exec -ti tf2 /bin/bash
docker run --gpus all -itd -v /home/sutianyu/DataDisk/ccf_beke:/share --name tf2 -w /share -p 9902:8001 tensorflow/tensorflow:latest-gpu

docker run -itd --runtime=nvidia -v /home/sutianyu/DataDisk/:/share --name tf2 -w /share tf2:beke

sce-ent

docker run -tid --gpus all -v /media/tianyu/Data/workspaces:/share -w /share/Learning-Similarity-Conditions --name scev02 pytorch/pytorch:v0.2

docker run -tid --gpus all -v /media/tianyu/Data/workspaces:/share -w /share/Learning-Similarity-Conditions --name scecu75 anibali/pytorch:cuda-7.5

posted @ 2023-06-20 16:29  佰大于  阅读(22)  评论(0编辑  收藏  举报