栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 一些网站
  • 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

参考: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.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即可,更加方便了。

  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
  • 【AMBA VIP | VC_formal | VCS】EDA docker 镜像使用指南
Linux
  • 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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号