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过程
一种方法
-
sudo docker images #查看当前系统的docker镜像
-
sudo docker create -it --runtime=nvidia -v /home/groupe/:/prj img_id # 根据镜像创建新的容器,单纯创建
-v 是挂载虚拟目录,注意如果 把目录挂载到容器的 /home 目录,那么有些 bash 命令会失效,不能全部覆盖
-
sudo docker ps -a #找到刚刚创建的容器(STATUS=Created)
-
sudo docker start con_id #启动容器
-
sudo docker exec -it con_id bash #进入容器
-
exit 退出容器
第二种方法
还有一种直接利用镜像创建一个容器:
-
创建临时容器(当退出容器自动清除自己)
sudo docker run -it --runtime=nvidia --rm -v /home/groupe/:/prj img_id bash
Docker 非 root 用户使用
-
查看系统是否有 docker 组,
cat /etc/group
-
确保 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 的执行路径 -
如果 docker 服务运行在 docker 用户组,那么请继续
-
使用有 sudo 权限的账户执行下面命令,把需要使用docker服务的用户加入到 docker 组
sudo usermod -aG docker $USER
-
使用有 sudo 权限的用户,重新启动 docker 服务
sudo systemctl restart docker
-
切换到没有sudo权限的用户,执行
docker info
如果输出信息则代表配置成果,若没有成功- 请检查是否正确加入到 docker 用户组 ,查看
cat /etc/group | grep docker
输出里面有没有此用户 - 如果在 docker 用户组,那么需要切换到这个用户组,进而执行 docker 命令
newgrp docker
- 请检查是否正确加入到 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