Ubuntu docker安装、验证、卸载

 

卸载Docker CE

卸载Docker CE软件包:

sudo apt-get purge docker-ce

主机上的图像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:

sudo rm -rf /var/lib/docker

您必须手动删除任何已编辑的配置文件。

一般我都会再执行以下,把依赖什么的也全都删掉

sudo apt autoremove docker-ce

卸载列出所有docker安装的组件

dpkg -l |grep docker

apt remove --purge dockker.io

所有的都需要卸载

 

 

脚本安装docker(简易方式,需网):

在Ubuntu系统中安装较为简单,官方提供了脚本供我们进行安装。

sudo apt install curl
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker CE 的Edge版本安装在系统中。

启动Docker CE

sudo systemctl enable docker
sudo systemctl start docker

建立docker 用户组

默认情况下,docker 命令会使用Unix socket 与Docker 引擎通讯。而只有root 用户和docker 组的用户才可以访问Docker 引擎的Unix socket。出于安全考虑,一般Ubuntu系统上不会直接使用root 用户。因此,更好地做法是将需要使用docker 的用户加入docker用户组。

# 建立docker组
sudo groupadd docker
# 将当前用户加入docker组
sudo usermod -aG docker $USER

注销当前用户,重新登录Ubuntu,输入docker info,此时可以直接出现信息。

 

配置国内镜像加速

在/etc/docker/daemon.json 中写入如下内容(如果文件不存在直接新建该文件)

sudo vim /etc/docker/daemon.json

{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}

重新启动服务

sudo systemctl daemon-reload
sudo systemctl restart docker

验证

启动一次操作容器docker run IMAGE_NAME [COMMAND] [ARG…]

例如,启动一个容器输出hello world。由于刚装上Docker,没有任何镜像,所以会先下载一个最新的ubuntu18.04的docker镜像。一次操作容器在处理完操作后会立即关闭容器。

docker run ubuntu echo 'hello world'

 

启动交互式容器:docker run -t -i –name=自定义名称 IMAGE_NAME /bin/bash

-i –interactive=true | false,默认是false

-t –tty=true | false,默认是false

–name 给启动的容器自定义名称,方便后续的容器选择操作

启动交互式的容器,就是类似虚拟机、云主机的操作方式,操作完一个命令后仍然可以继续:

docker run -i -t ubuntu /bin/bash

拉GPUTensorFlow:

docker tensorflow的镜像官网为https://hub.docker.com/r/tensorflow/tensorflow/,首先按照官方教程安装nvidia-docker2,之后的tensorflow-gpu镜像都需要nvidia-docker来启动,或者docker run --runtime=nvidia,当然这样就足够用了,如果你想用docker取代nvidia-docker可以修改/etc/docker/daemon.json为如下所示,即在第一行加入"default-runtime": "nvidia",这样就可以直接用docker取代nvidia-docker了。

{
    "default-runtime""nvidia",
    "runtimes": {
        "nvidia": {
            "path""/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

下载成功后执行:

docker images

步骤:

1.安装cuda

2.安装 nvidia-docker2

2.1安装nvcc

sudo apt install nvidia-cuda-toolkit

验证nvcc --version

2.2设置stable存储库和密钥

 因为前面用的脚本安装,也许不用这步?----并不是,后面的sudo apt-get install -y nvidia-docker2用到了。。。

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.3 安装nvidia-docker2安装包
sudo apt-get update
sudo apt-get install -y nvidia-docker2

重启docker

sudo systemctl restart docker

用官方container测试是否安装成功

sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

拉TensorFlow的镜像

docker pull tensorflow/tensorflow:2.7.1-gpu
docker pull tensorflow/tensorflow:2.5.1-gpu

docker pull tensorflow/tensorflow:2.6.0rc0

启动容器

如果在前面配置了"default-runtime": "nvidia",那么执行:

1
docker run   --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3

没有配置则可以执行:

1
nvidia-docker run --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3

或者执行:

1
docker run --runtime=nvidia --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3

其中docker run的参数含义如下:

(1)--rm        退出容器清除数据

(2)-it           启动交互式终端

(3)-v           挂在目录

(4)--name  容器名称

 具体细节参考官方文档:https://docs.docker.com/engine/reference/run/

 

4.其他docker常用命令

(1)通过[docker  commit  CONTAINER_ID   newImageName]保存对镜像的修改,CONTAINER_ID可以通过docker ps查看

(2)通过[docker save -o  文件名  镜像名] 将镜像存储至磁盘,例如docker save -o  tensorflow.tar      tensorflow/tensorflow:1.8.0-devel-gpu-py3

(3)通过[docker load  --input  文件名] 从磁盘导入镜像,例如docker load  --input  tensorflow.tar

(4)容器一旦退出里面的信息就都会被清除,若不想保存修改又不想丢失信息,那么可以CTRL+P+Q让容器在后台运行,然后通过docker attach CONTAINER_ID重新连接进容器

 

posted @ 2022-03-22 17:06  qzl  阅读(377)  评论(0编辑  收藏  举报