十分钟入门Docker,带你成为Docker王者之篇二

上一篇文章『十分钟入门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

这里要再次回顾一下上篇文章的一段话:学习

  1. Docker就像是你电脑里面安装了一个冰箱,这个冰柜提供制做形状各异的雪糕模具(这个就是镜像Image),而后你能够用这些模具来制做各类各样的雪糕(雪糕也就是container)。作出来的雪糕,支持访问,能够查看雪糕内部的各类结构。
  2. 经过Docker,你能够将本身的雪糕模具给了其余的小伙伴或者上传到网上,而后其余的小伙伴能够用你的模具,在他的电脑里面的冰柜(Docker)中,就能够制做出来和你的如出一辙的雪糕。

因此,Docker 玩的最核心的其实就是两个东西: Container(容器)Image(镜像)

那么接下来,皮爷就给你们来讲一下 Docker 里面,最最最最最工做化和经常使用的几条命令。网站

0x00_内功心法:$ docker [xxx] --help

学习全部招式以前,先学一个内功心法。最关键的一个:--help 关键字。这个关键字能够用在任何命令以后,若是对 docker 的命令不清楚怎么用,就能够加 --help 命令来查看帮助文档。好比:ui

  • docker
    不知道怎么用?? 经过 docker --help 查看啊。
  • docker ps
    不知道怎么用?? 经过 docker ps --help 查看啊。
  • docker image
    不知道怎么用?? 经过 docker image --help 查看啊。
  • docker run
    不知道怎么用?? 经过 docker run --help 查看啊。

学完心法,咱们来看学习招式。spa

0x01_左手容器:$ docker ps 系列

在这个命令基础下,主要玩的是这么几条命令:

  • $ docker ps
  • $ docker ps -a
  • $ docker rm
  • $ docker stop
  • $ docker start
  • $ docker restart
  • $ docker logs

>$ docker ps

这个命令是最基本的命令,在 Docker 运行起来的时候,这个命令能够罗列出全部正在运行的容器(Containers)

>$ docker ps -a

这个命令只是在上一个命令的基础之上,加了一个 -a 参数,它能够罗列出来全部的容器,包括正在运行的已经中止的。中止的容器通常有两种状况:一种是运行出错,另外一种是运行完毕。

>$ docker rm [OPTIONS] CONTAINER [CONTAINER…]

rm命令,通常都是删除命令。这条命令在 rm 后面,跟选择参数或者直接跟一个或者多个容器的ID。做用就是将容器删除。

这条命令颇有用,好比你须要删除一个镜像(Image),可是系统提示你删除失败:由于有容器正在使用镜像。那么你须要先删除使用镜像的容器(容器多是运行状态,也多是stop的状态,经过$ docker ps -a命令来查看容器状态),这里就须要用到这个$ docker rm xxxx命令了。

我这里在上面的例子中执行一下,给你们看一下效果:

上面这个图,咱们从上往下看:

  • 第一个红框,列出了三条容器信息;
  • 第二个红框,咱们选择删除第二个容器;
  • 第三个红框,能够看到刚才的容器被删除了。

>$ docker stop [OPTIONS] CONTAINER [CONTAINER…]

stop命令则是将运行中的容器中止掉。

要问啥是运行中的容器? ----- 经过$ docker ps命令列出来的就是运行中的容器。

那么咱们只须要把要中止的容器的ID号填写到 stop 后面就能够了。一次能够中止一个ID或者中止多个ID

上面这个图,咱们从上往下看:

  • 第一个红框,看到 $ docker ps 命令列出来了正在运行的容器。
  • 第二个红框,咱们经过 $ docker stop 命令,来中止容器。这里咱们只去了ID的前几位来表示容器的ID,Docker是支持这样简化操做的,前提是缩写ID没有歧义
  • 第三个红框,咱们发现经过 $ docker ps 命令看不到刚才那个容器了,由于这个命令罗列出来都是运行中的容器。
  • 第四个红框,看到经过 $ docker ps -a 命令罗列出来全部的容器,发现刚才的那个容器已经被关闭了。

>$ docker start [OPTIONS] CONTAINER [CONTAINER…]

>$ docker restart [OPTIONS] CONTAINER [CONTAINER…]

这俩命令,使用形式和上面的 $ docker stop 命令如出一辙,只不过一个是 start 表示 让容器运行;另外一个是 restart 表示 让容器重启。具体作法不介绍了,很简单。

>$ docker logs [OPTIONS] CONTAINER

哈哈,这个是查看容器 log 的命令,也算是一个很关键件的指令。logs 后面只须要加容器的ID就能够。注意,这里和上面的指令不同,这里一次只能查看一个容器的Log,后面不能跟多个容器的ID。

上面这个图,咱们从上往下看:

  • 第一个红框,看到 $ docker ps -a 命令列出来全部的容器。
  • 第二个红框,咱们经过 $ docker logs ID 来看到那个 3dmspider 容器的log,其实就是咱们 Scrapy 爬虫的log。

0x02_右手镜像:$ docker images 系列

在这个命令基础下,主要玩的是这么几条命令:

  • $ docker search
  • $ docker images
  • $ docker image rm
  • $ docker image history
  • $ docker image build
  • $ docker image pull
  • $ docker image push

>$ docker search [OPTIONS] TERM

这个命令的主要功能是搜索dockerhub里面现成的镜像(Image)。后面的Term就是搜索的关键字。

好比搜索 Ubuntu 的镜像:

能够看到上面搜索出来好多镜像,并且后面还有 StartOfficial 认证。

再好比搜索上节课皮爷的给你们留的做业的镜像:

就一条数据,哈哈哈哈。只要搜索到镜像(Image),你就可使用这个镜像了。

>$ docker images

这个命令要注意一下,Images复数,后面加着s呢。这个命令主要就是罗列出来你本地已经下载好的或者是建立的 docker iamge。

从上面的图咱们看到,我本地只有四个镜像。为啥要说这个命令呢?由于这个命令和后面的 rm 命令关联,咱们可以在这个命令里面找到镜像的ID。

>$ docker image rm [OPTIONS] IMAGE [IMAGE…]

这个命令主要就是来删除本地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命令掌握到这个程度就能够了。

>$ docker image history [OPTIONS] IMAGE

这个history命令,顾名思义,就是把Image的历史记录罗列出来。

这里能够看得很清楚,咱们的这个 image到底发生过怎样的便签。其实这个功能有点像 Git 中的 git log 其实仍是和 image push/pull 功能相关的,这俩功能都和修改 Image 有关, histroy 就是来查看修改记录了。

>$ docker image pull [OPTIONS] NAME[:TAG|@DIGEST]

这个简单提一下,就是拉取镜像的。

>$ docker image push [OPTIONS] NAME[:TAG]

上一个是拉镜像,这个就是push镜像。

>$ docker image build

这个命令很关键,可是咱们这一期先不讲,build 命令主要是要结合:1. 本地的代码;2. 你所写的 Dockerfile。 这两个东西来建立你的Image。怎样写Dockerfile,怎样Build, 咱们下一篇说。

0x03_中间雄起:$ docker run

Run 方法但是不得了。这个能够说是 Docker 的核心中的核心。若是要学要用起来,其实也不难,掌握好如下几个方法就好:

  • $ docker run swyftg/3dmspider
  • $ docker run 43b6fb877481
  • $ docker run -t -i python:3.6
  • $ docker run -t -i ububtu /bin/bash

恩恩,就这么几个基本彻底够用了。咱们一个一个的说。

>$ docker run swyftg/3dmspider

>$ docker run 43b6fb877481

这两个其实很相近,run 后面能够跟 Image 的仓库名字或者 Image 的ID。若是是仓库名字,还能够在名字后面添加版本号。

咱们看到,直接跟着 Image ID,就能够运行起来。并且打印出来的Log也确实是Scray的log。

>$ docker run -t -i python:3.6

这个命令主要是 -t-i 这两个参数:

  • -t:在新容器内指定一个伪终端或终端。
  • -i:容许你对容器内的标准输入 (STDIN) 进行交互。

其实这俩通常是一块儿使用。就好比下面这个:

看到没?只须要经过一个 Docker 的 Python 3.6 的 Image ,就能够在你的电脑上面将 Python3 跑起来。

>$ docker run -t -i ububtu /bin/bash

这个是在上一个命令的基础上,更加进一步的操做,就是在 仓库名字或者Image ID 后面,添加了 /bin/bash 运行程序的路径名字。

通常若是是Linux的Image,或者你的程序根Image是用的Linux,尝尝会运行 /bin/bash ,经过这种方式,你能够查看 Image 里面的文件究竟是怎么回事儿了。

0x04_做业小练习

做业很简单,字数不多:朗读并背诵全文。 哈哈哈,字数越少事儿越大,这几个字是否是很是恐怖?

咱们这一篇文章主要讲了 Docker 中经常使用的命令,来管理 ImageContainer,同时还说了一下 Run 命令。Docker 还有其余命令,感兴趣的能够经过咱们最开始教的内容口诀 $ docker --help 来看那些命令怎么玩。

喜欢的能够关注公号『皮爷撸码』,回复『代码』,其中DC001就是 Docker 系列的代码,你们能够学习一下。

你们帮忙点个右下角的好看呗,你这么帅,不点好看怎么过去啊。

相关文章
相关标签/搜索