首页 > 技术文章 > Docker的安装和使用

from-zero 2020-10-28 21:35 原文

这两天尝试搭了一下Docker,并不是十分的成功。先把我找到的一些教程和我的历程整理一下放在这里,留着以后参考。FINE

首先我的目标是想要使用Docker搭一个Keras+TensorFlow(CPU)的跑深度学习代码的环境。【使用Docker,可以简便的拉取别人已经搭好的环境,get一个镜像在本地,然后实例化一个容器,就可以跑自己的代码了。Docker可以简化搭建复杂环境的步骤、节省时间,并且十分的轻便,还具有很好的移植性。】Ps.小吐槽一下,新手菜鸡搞Docker用的时间比在本地搭一个目标环境的时间都要长了hhh,不过这也算是尝试了一下新东西,永远保持好奇。

==下面开始==

主要包括两部分,一个是在Ubuntu环境下安装使用Docker,一个是在windows10环境下。

一、Ubuntu安装Docker CE

Docker教程-安装 《== 上链接

这个链接中主要参考第一部分:Ubuntu下的安装步骤以及第三部分:Docker镜像加速。以下做一下我个人的补充:

(1)Docker CE启动命令

$ sudo systemctl enable docker
$ sudo systemctl start docker

如果只用start命令报错的话,可以试一下enable。

另外,Ubuntu 14.04 请使用以下命令启动:

$ sudo service docker start

(2)建立 docker 用户组

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

建立 docker 组:

$ sudo groupadd docker

将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER (USER改成你的用户名)

使新添加的组信息生效:

$ newgrp docker

然后就可以使用 docker run hello-world 命令进行测试了。

Tips,如果run其他的镜像出错的话,也可以尝试先执行一下 newgrp docker 这个命令。

二、Windows安装Docker

Windows Docker 安装 《== 上链接

这个链接中主要参考的是第二部分:win10系统以及第三部分:win系统的镜像加速。不过其中的Docker可能不是最新的版本,主页和界面略有差异,所以在这里进行一下补充说明。

(1)Docker下载

就直接下载就好了,然后安装,安装过程有问题的话,自行百度就可以,没什么坑的。

(2)镜像加速

首先点出Settings的界面来,在下图的位置进行修改。加速器地址除了可以写链接中给的,然后也可以使用阿里云的免费的,链接:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登录一下立即拥有。

(3)Docker的使用

我想要一个Keras+TensorFlow的环境,可以去github上找,也可以去docker hub上找。比如我找到了:docker-keras-full

在命令行中,执行命令 docker pull gw000/keras-full 就可以拉取这个镜像到本地。

接着,执行 docker run -it -p 8888:8888 gw000/keras-full 就运行了这个镜像,在浏览器中访问对应的地址就可以打开jupyter notebook进行代码编辑和运行了。其他命令可以参照找到的那个镜像的链接中的说明。

# 一些命令
拉取镜像:docker pull 镜像名:版本号
查看本地镜像:docker images
运行某个镜像:docker run –it 镜像标识ID bash

(4)怎样把Docker从C盘弄走

不知道为啥Docker默认安装在C盘,安装过程中还不能更改安装路径,并且拉取的镜像的路径也是默认在C盘的某个位置,这两个所占的空间太大了,想把它们搞出去。网上找到的方法最好的就是做软链接了,网址。但是这个网址中的路径不适合我,我就直接根据文件夹的修改时间等信息找到了目标文件夹。

我的安装路径在C:\Program Files\Docker这里。下载镜像的路径我是直接搜的“vhdx”,然后把疑似目标的文件夹做了软链接。

软链接命令: mklink /J "源路径" 新路径 ,这样源路径就变成了一个指向新路径的快捷方式。

推荐阅读