上一篇文章『十分钟入门Docker,带你成为Docker王者之篇一』给你们讲了一下 Docker 怎么安装和运行,那么这一篇文章,咱们着重讲解一下怎样可以快速的掌握Docker经常使用命令。python
上一期在文末留了一个做业,不知道你们是否跑起来了?git
题目:
若是你已经成功安装好了 Docker,不妨试一试皮爷的 Docker Image 跑起来的效果: docker$ docker run swyftg/3dmspider复制代码
若是你们正常运行起来了,那么这个 Docker Image 的做用,就是爬取 https://www.3dmgame.com/
网站的游戏资讯,具体的爬虫代码能够关注公号『皮爷撸码』,回复『代码』,其中 DC001 就是 Docker 的爬虫代码地址,有兴趣的同窗能够去学习一下源码。bash
那么这个 Image 运行起来的样子就是这样:app
神奇不?哈哈哈,你看,你不须要配置Python,Scrapy的运行环境,也不须要安装Python的依赖,只须要安装Docker,就能够玩转Scrapy爬虫。注意,Docker不只仅只限于爬虫,任何都适用,皮爷这里只是给作一个Docker Image的展现而已。ide
这里要再次回顾一下上篇文章的一段话:学习
- Docker就像是你电脑里面安装了一个冰箱,这个冰柜提供制做形状各异的雪糕模具(这个就是镜像Image),而后你能够用这些模具来制做各类各样的雪糕(雪糕也就是container)。作出来的雪糕,支持访问,能够查看雪糕内部的各类结构。
- 经过Docker,你能够将本身的雪糕模具给了其余的小伙伴或者上传到网上,而后其余的小伙伴能够用你的模具,在他的电脑里面的冰柜(Docker)中,就能够制做出来和你的如出一辙的雪糕。
那么接下来,皮爷就给你们来讲一下 Docker 里面,最最最最最工做化和经常使用的几条命令。网站
学习全部招式以前,先学一个内功心法。最关键的一个:--help
关键字。这个关键字能够用在任何命令以后,若是对 docker 的命令不清楚怎么用,就能够加 --help
命令来查看帮助文档。好比:ui
学完心法,咱们来看学习招式。spa
在这个命令基础下,主要玩的是这么几条命令:
这个命令是最基本的命令,在 Docker 运行起来的时候,这个命令能够罗列出全部正在运行的容器(Containers)
这个命令只是在上一个命令的基础之上,加了一个 -a
参数,它能够罗列出来全部的容器,包括正在运行的和已经中止的。中止的容器通常有两种状况:一种是运行出错,另外一种是运行完毕。
rm命令,通常都是删除
命令。这条命令在 rm 后面,跟选择参数或者直接跟一个或者多个容器的ID。做用就是将容器删除。
这条命令颇有用,好比你须要删除一个镜像(Image),可是系统提示你删除失败:由于有容器正在使用镜像。那么你须要先删除使用镜像的容器(容器多是运行状态,也多是stop的状态,经过$ docker ps -a
命令来查看容器状态),这里就须要用到这个$ docker rm xxxx
命令了。
我这里在上面的例子中执行一下,给你们看一下效果:
上面这个图,咱们从上往下看:
stop命令则是将运行中的容器中止掉。
要问啥是运行中的容器? ----- 经过$ docker ps
命令列出来的就是运行中的容器。
那么咱们只须要把要中止的容器的ID号填写到 stop 后面就能够了。一次能够中止一个ID或者中止多个ID。
上面这个图,咱们从上往下看:
$ docker ps
命令列出来了正在运行的容器。$ docker stop
命令,来中止容器。这里咱们只去了ID的前几位来表示容器的ID,Docker是支持这样简化操做的,前提是缩写ID没有歧义$ docker ps
命令看不到刚才那个容器了,由于这个命令罗列出来都是运行中的容器。$ docker ps -a
命令罗列出来全部的容器,发现刚才的那个容器已经被关闭了。这俩命令,使用形式和上面的 $ docker stop
命令如出一辙,只不过一个是 start
表示 让容器运行
;另外一个是 restart
表示 让容器重启
。具体作法不介绍了,很简单。
哈哈,这个是查看容器 log 的命令,也算是一个很关键件的指令。logs
后面只须要加容器的ID就能够。注意,这里和上面的指令不同,这里一次只能查看一个容器的Log,后面不能跟多个容器的ID。
上面这个图,咱们从上往下看:
$ docker ps -a
命令列出来全部的容器。$ docker logs ID
来看到那个 3dmspider 容器的log,其实就是咱们 Scrapy 爬虫的log。在这个命令基础下,主要玩的是这么几条命令:
这个命令的主要功能是搜索dockerhub里面现成的镜像(Image)。后面的Term就是搜索的关键字。
好比搜索 Ubuntu 的镜像:
能够看到上面搜索出来好多镜像,并且后面还有 Start
和 Official
认证。
再好比搜索上节课皮爷的给你们留的做业的镜像:
就一条数据,哈哈哈哈。只要搜索到镜像(Image),你就可使用这个镜像了。
这个命令要注意一下,Images是复数,后面加着s
呢。这个命令主要就是罗列出来你本地已经下载好的或者是建立的 docker iamge。
从上面的图咱们看到,我本地只有四个镜像。为啥要说这个命令呢?由于这个命令和后面的 rm
命令关联,咱们可以在这个命令里面找到镜像的ID。
这个命令主要就是来删除本地Image使用的。一次能够删除一个或者多个Image。后面的Image ID就是从上面的那个命令里面看到的。
这是个很是好的例子,上面这个图,咱们从上往下看:
$ docker images
命令列出来全部的镜像。$ docker image rm xxx
命令来删除一个 Image,发现删除失败,报错了。由于有容器正在使用这个Image。$ docker ps -a
命令来查看是哪一个容器在使用。rm
命令删掉。$ docker image rm xxx
命令来删除刚才要删除的那个镜像。$ docker images
命令罗列本地镜像,发现那个镜像已经被成功删除。$ docker image rm
命令掌握到这个程度就能够了。
这个history
命令,顾名思义,就是把Image的历史记录罗列出来。
这里能够看得很清楚,咱们的这个 image到底发生过怎样的便签。其实这个功能有点像 Git 中的 git log
。 其实仍是和 image push/pull
功能相关的,这俩功能都和修改 Image 有关, histroy 就是来查看修改记录了。
这个简单提一下,就是拉取镜像的。
上一个是拉镜像,这个就是push镜像。
这个命令很关键,可是咱们这一期先不讲,build
命令主要是要结合:1. 本地的代码;2. 你所写的 Dockerfile。 这两个东西来建立你的Image。怎样写Dockerfile,怎样Build, 咱们下一篇说。
Run
方法但是不得了。这个能够说是 Docker 的核心中的核心。若是要学要用起来,其实也不难,掌握好如下几个方法就好:
恩恩,就这么几个基本彻底够用了。咱们一个一个的说。
这两个其实很相近,run
后面能够跟 Image 的仓库名字或者 Image 的ID。若是是仓库名字,还能够在名字后面添加版本号。
咱们看到,直接跟着 Image ID,就能够运行起来。并且打印出来的Log也确实是Scray的log。
这个命令主要是 -t
和 -i
这两个参数:
-t
:在新容器内指定一个伪终端或终端。-i
:容许你对容器内的标准输入 (STDIN) 进行交互。其实这俩通常是一块儿使用。就好比下面这个:
看到没?只须要经过一个 Docker 的 Python 3.6 的 Image ,就能够在你的电脑上面将 Python3 跑起来。
这个是在上一个命令的基础上,更加进一步的操做,就是在 仓库名字或者Image ID 后面,添加了 /bin/bash
运行程序的路径名字。
通常若是是Linux的Image,或者你的程序根Image是用的Linux,尝尝会运行 /bin/bash
,经过这种方式,你能够查看 Image 里面的文件究竟是怎么回事儿了。
做业很简单,字数不多:朗读并背诵全文。 哈哈哈,字数越少事儿越大,这几个字是否是很是恐怖?
咱们这一篇文章主要讲了 Docker 中经常使用的命令,来管理 Image
和 Container
,同时还说了一下 Run
命令。Docker 还有其余命令,感兴趣的能够经过咱们最开始教的内容口诀 $ docker --help
来看那些命令怎么玩。
喜欢的能够关注公号『皮爷撸码』,回复『代码』,其中DC001就是 Docker 系列的代码,你们能够学习一下。
你们帮忙点个右下角的好看呗,你这么帅,不点好看怎么过去啊。