- 一些网站
- Docker 备忘
- Docker 安装
- Docker 基本命令使用
- 1,创建并启动容器
- 2,列出容器
- 3,退出容器
- 4,进入容器
- 5,启动容器
- 6,重启容器
- 7,停止容器
- 8,删除容器
- Docker 镜像使用
- 1,列出镜像
- 2,获取镜像
- 3,查找镜像
- 4,删除镜像
- docker 存储位置更改
- windows
- Linux
- 参考
-
Docker 命令查询网站:https://docs.docker.com/engine/reference/commandline/run/
-
Docker 镜像下载网站:https://hub.docker.com/
-
阿里云的镜像容器服务:镜像加速 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
Docker 备忘参考:https://www.runoob.com/docker/docker-mirror-acceleration.html
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://6qtgv43f.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker run -it --name train_mnist -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -v /home/clay/WorkSpace/_share:/home/workspace/_share --gpus all nvidia/cuda:11.1-base
#1 Miniconda安装,安装路径:/home/workspace/miniconda3 cd /home/workspace/_share ./Miniconda3-latest-Linux-x86_64.sh
#2 重启docker exit sudo docker ps -a //查看docker ID前两位,此处假如是dd sudo docker start dd && sudo docker attach dd
# 3 换源 cd /home/workspace/_share python oh-my-tuna.py
好像docker中只能换conda的源,所以需要手动换ubuntu的源,详细参考:https://blog.csdn.net/ReCclay/article/details/124807818
如果pip conda的源也未替换成功,可以参考这篇文章替换:https://blog.csdn.net/ReCclay/article/details/114027851
#4 更新 apt update
update 错误记录:(开放了GPU的错误)
(base) root@ddd3e6a8a30e:/home/workspace/_share# apt update Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease Hit:4 http://archive.ubuntu.com/ubuntu focal InRelease Ign:2 https://developer.download.nvidia.cn/compute/machine-learning/repos/ubuntu2004/x86_64 InRelease Get:1 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 InRelease [1581 B] Err:1 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC Hit:5 https://developer.download.nvidia.cn/compute/machine-learning/repos/ubuntu2004/x86_64 Release Hit:7 http://archive.ubuntu.com/ubuntu focal-updates InRelease Hit:8 http://archive.ubuntu.com/ubuntu focal-backports InRelease Reading package lists... Done W: GPG error: https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC E: The repository 'https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 InRelease' is not signed. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
#5 安装基础编译环境 apt install build-essential
Docker 安装
Docker 的旧版本被称为 docker,docker.io 或 docker-engine。当前称为 Docker Engine-Community 软件包 docker-ce 。安装教程参考:
- 【清华源】Docker Community Edition 镜像使用帮助
- 【菜鸟教程】https://www.runoob.com/docker/ubuntu-docker-install.html
Docker也是虚拟化环境的神器,前面说的conda虽然可以提供python的虚拟环境并方便地切换,但是有的时候我们的开发环境并不只是用到python,比如有的native库需要对应gcc版本的编译环境,或者进行交叉编译时哟啊安装很多工具链等等。如果这些操作都在服务器本地上进行,那时间久了就会让服务器的文件系统非常杂乱,而且还会遇到各种软件版本冲突问题。
Docker就可以很好地解决这些问题,它其实可以理解为就是一个非常轻量化的虚拟机,我们可以在宿主服务器上新建很多个这种被称为容器的虚拟机,然后在里面配置我们的开发环境,且这些配置好的环境是可以打包成镜像的,方便随时做分享和重用;不需要的时候,我们直接删除容器就好了,其资源是和我们的服务器宿主机完全隔离的。
Docker的具体使用可以自己搜索一下很多教程,这里主要介绍如何把GPU暴露给Docker的容器(因为大家都知道像是VMware这种虚拟机里面都是无法共享宿主机的GPU的),是通过nvidia-docker实现的。
以前为了配置nvidia-docker,需要安装完docker之后再安装单独的nvidia docker2,而现在只需要安装nvidia container toolkit即可,更加方便了。
- docker安装 官网上有详细的介绍:Install Docker Engine on Ubuntudocs.docker.com 或者运行下面的命令安装:
sudo apt-get update sudo apt-get install docker.io systemctl start docker systemctl enable docker
可以运行这条命令检查是否安装成功:
docker version
- 安装NVIDIA Container Toolkit
官网安装步骤:NVIDIA/nvidia-docker: Build and run Docker containers leveraging NVIDIA GPUs (github.com) 或者直接运行下面的命令:
##首先要确保已经安装了nvidia driver # 2. 添加源 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list # 2. 安装并重启 sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker
安装完成后可以新建一个容器测试一下:
sudo docker run -it --name test_nvidia_docker --gpus all nvidia/cuda:11.1-base
其中最后的参数nvidia/cuda:11.1-base 是Nvidia官方的镜像,需要根据工作站主机中实际安装的cuda版本进行修改,版本可以用nvcc -V查看。
进入容器之后可以跑一下nvidia-smi命令看看:
现在可以在docker里面正常使用GPU啦~
Docker 基本命令使用 1,创建并启动容器启动普通容器: docker run --name 别名 镜像ID(取ID前两个数就行)
启动交互式容器:docker run -it --name 别名 镜像ID 来运行一个容器,取别名,交互模式运行,以及分配一个伪终端
–name=“容器新名字”:为容器指定一个名称;
-i:以交互模式运行容器,通常与-t或者-d同时使用;(-d:后台运行容器)
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
从容器中出来:exit
2,列出容器命令:docker ps [OPTIONS]
OPTIONS说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
–format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
–no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
我们这里先启动之前的容器,再来列出正在运行的容器:
docker ps 查看正在运行的容器
docker ps -a 查看所有容器
docker ps -n 2 显示最近创建的2个容器
docker ps -f status=exited 查看停止的容器
docker ps -a查看所有容器:
docker ps -n 2显示最近创建的2个容器:
docker ps -f status=exited 查看停止的容器
exit 容器停止退出
ctrl+P+Q 容器不停止退出
我们来检验一下:
4,进入容器比方说上面的我们已经退出容器,但是它依旧在运行,所以说我们又怎么样重新进去呢?
命令:docker attach 容器ID or 容器名
注意: attach命令,如果从这个容器退出,会导致容器的停止
除了上述命令可以进入容器,还有一个命令也可以进入容器:
docker exec
推荐使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。
5,启动容器当容器停止了,我们也可以启动容器;
命令:docker start 容器ID or 容器名
我们再来看看容器的启动状态:
命令:docker restart 容器ID or 容器名
7,停止容器命令:docker stop 容器ID or 容器名
暴力删除,直接杀掉进程 (不推荐)
命令:docker kill 容器ID or 容器名
8,删除容器命令: docker rm 容器ID
我们先来看看容器运行情况:
此时我们删掉mycentos1的话试试看:
如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;
强制删除:docker rm -f 容器ID
Docker 镜像使用 1,列出镜像docker images
docker images 各个参数选项说明:
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
docker pull xxx:版本号
获取相应版本号的xxx镜像,版本号可选
3,查找镜像可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
我们也可以使用 docker search 命令来搜索镜像:
docker search xxx
docker search 各个参数选项说明:
- NAME: 镜像仓库源的名称
- DESCRIPTION: 镜像的描述
- OFFICIAL: 是否 docker 官方发布
- stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
- AUTOMATED: 自动构建。
删除镜像前记得需要先删除使用该镜像的容器!
docker rmi xxxdocker 存储位置更改 windows
- 【AMBA VIP | VC_formal | VCS】EDA docker 镜像使用指南
- Ubuntu20.04修改docker镜像存储位置并进行数据迁移
- [Notes] Ubuntu下修改docker 镜像存储位置并进行数据迁移
{
"registry-mirrors": ["https://6qtgv43f.mirror.aliyuncs.com"],
"data-root": "/home/clay/software/docker"
}
参考
-
安装WSL :https://docs.microsoft.com/zh-cn/windows/wsl/install
-
设置WSL:https://docs.microsoft.com/zh-cn/windows/wsl/setup/environment
-
docker基本使用:
- https://blog.csdn.net/qq_37084904/article/details/108271690
- https://mp.weixin.qq.com/s/tvCSryBFTpCA9FtgabvuKA
- 详细齐全!Docker常用基本命令
-
docker 中cuda相关
- 怎么在docker中使用nvidia显卡
- 【docker-cuda】——base,runtime,devel的区别
- 基于docker容器ubuntu16.04安装cuda10.1+cudnn7.6.4



