【软件工具使用】docker快速入门指南

一些网站

参考:https://www.runoob.com/docker/docker-mirror-acceleration.html

在这里插入图片描述

Docker 备忘

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.youkuaiyun.com/ReCclay/article/details/124807818

如果pip conda的源也未替换成功,可以参考这篇文章替换:https://blog.youkuaiyun.com/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也是虚拟化环境的神器,前面说的conda虽然可以提供python的虚拟环境并方便地切换,但是有的时候我们的开发环境并不只是用到python,比如有的native库需要对应gcc版本的编译环境,或者进行交叉编译时哟啊安装很多工具链等等。如果这些操作都在服务器本地上进行,那时间久了就会让服务器的文件系统非常杂乱,而且还会遇到各种软件版本冲突问题。

Docker就可以很好地解决这些问题,它其实可以理解为就是一个非常轻量化的虚拟机,我们可以在宿主服务器上新建很多个这种被称为容器的虚拟机,然后在里面配置我们的开发环境,且这些配置好的环境是可以打包成镜像的,方便随时做分享和重用;不需要的时候,我们直接删除容器就好了,其资源是和我们的服务器宿主机完全隔离的。

Docker的具体使用可以自己搜索一下很多教程,这里主要介绍如何把GPU暴露给Docker的容器(因为大家都知道像是VMware这种虚拟机里面都是无法共享宿主机的GPU的),是通过nvidia-docker实现的。

以前为了配置nvidia-docker,需要安装完docker之后再安装单独的nvidia docker2,而现在只需要安装nvidia container toolkit即可,更加方便了。

  1. 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
  1. 安装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 查看停止的容器
在这里插入图片描述

3,退出容器

exit 容器停止退出

ctrl+P+Q 容器不停止退出

在这里插入图片描述

我们来检验一下:

在这里插入图片描述

4,进入容器

比方说上面的我们已经退出容器,但是它依旧在运行,所以说我们又怎么样重新进去呢?

命令:docker attach 容器ID or 容器名

在这里插入图片描述

注意: attach命令,如果从这个容器退出,会导致容器的停止

除了上述命令可以进入容器,还有一个命令也可以进入容器:

docker exec

推荐使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止

5,启动容器

当容器停止了,我们也可以启动容器;

在这里插入图片描述

命令:docker start 容器ID or 容器名
在这里插入图片描述
我们再来看看容器的启动状态:

在这里插入图片描述

6,重启容器

命令: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:镜像大小

2,获取镜像

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: 自动构建。

4,删除镜像

删除镜像前记得需要先删除使用该镜像的容器!

docker rmi xxx

docker 存储位置更改

windows

Linux

{
  "registry-mirrors": ["https://6qtgv43f.mirror.aliyuncs.com"],
  "data-root": "/home/clay/software/docker"
}

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值