Ubuntu docker安装、验证、卸载
卸载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
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重新连接进容器