Docker系列整理(二)之docker的基本操作

文章目录

    • 查看容器
    • 查看所有的容器
    • 查看最新创建的容器
    • 查看最新创建的n个容器
    • 创建容器
      • 创建容器
      • 创建容器+容器启动
        • 后台型容器
        • 交互型容器
      • 容器启动
      • 容器重启
      • 容器停止
      • 容器删除
        • 单个删除
        • 批量删除

docker 中的容器就是一个轻量级的虚拟机,是镜像运行起来的一个状态,下面来看看容器的一些的基本操作。镜像就像是一个安装程序,而容器则是程序运行时的一个状态。

查看容器

启动 docker 后,我们可以使用 docker ps命令可以查看当前正在运行的容器:
在这里插入图片描述

查看所有的容器

如果我们需要查看所有的容器,可以使用docker ps -a命令来查看
Docker系列整理(二)之docker的基本操作_第1张图片
来说下上面的几个参数的含义:
CONTAINER ID:CONTAINER ID是指容器的id,是一个唯一标识符,这是一个64位的十六进制整数,在不会混淆的情况下可以只采用id的前几位进行标识一个容器。
IMAGE:IMAGE表示创建容器时使用的镜像。
COMMAND:COMMAND表示容器最后运行的命令。
CREATED:创建容器的时间。
STATUS:容器的状态,这里可能显示一个容器启动时间,也能显示容器关闭时间。具体显示哪个要看容器当前的状态。
PORTS:容器对外开放的端口。
NAMES:容器的名字,如果不设置,会有一个默认的名字。

查看最新创建的容器

当我们想查看最新创建的容器是什么时,我们就可以使用docker ps -l来查看
在这里插入图片描述

查看最新创建的n个容器

可以使用docker ps -n=XXX来查看最新创建的n个容器
在这里插入图片描述

创建容器

创建容器有两种不同的方式,可以先创建,再启动,也可以创建和启动一块执行,无论是那种方式,流程都是相似的,当执行一个创建命令之后,docker 首先会去本地路径下查找是否有相应的镜像,如果没有,就去 docker hub 上搜索,如果搜索到了,则下载下来,然后利用该镜像创建一个容器并启动。容器的文件系统是在只读的镜像文件上添加一层可读写的文件层,这样可以使在不改变镜像的情况下,只记录改变的数据。下面就来说说这两种方式

创建容器

我们可以使用docker create命令来创建容器,容器名是随机生成的,此时创建的容器是停止的,并没有启动

docker create nginx

当然我们也可以指定name来创建,如下命令

docker create --name=nginx nginx

此时的容器名就不是随机生成的了,就是我们自己指定的名字

创建容器+容器启动

如果需要既创建又启动容器,则可以使用docker run 命令。docker run命令又可以启动两种不同模式的容器:后台型容器和交互型容器,后台型容器就是一个在后台运行的容器,默默的在后台执行计划就行了,不需要和开发者进行交互,而交互型容器则需要接收开发者的输入进行处理给出反馈。对于开发者而言,大部分情况下创建的都是后台型容器,不过在很多时候,即使是后台型容器也不可避免的需要进行交互

后台型容器

后台型容器这里我们以nginx为例,可以使用下面命令来创建

docker run --name mynginx -d -p 8080:80 nginx

–name 含义和上文一样,表示创建的容器的名字,-d 表示容器在后台运行,-p 表示将容器的 80 端口映射到宿主机的 8080 端口
在这里插入图片描述
运行成功之后,我们在浏览器输入ip:8080就能看到nginx的默认页面
Docker系列整理(二)之docker的基本操作_第2张图片

交互型容器

创建交互型容器,例如创建一个 ubuntu 容器,需要在 ubuntu 上面输入命令执行相关操作,交互型容器创建方式如下:

docker run --name ubuntu -it ubuntu /bin/bash

参数含义都和上文一致,除了 -it,-it参数,i 表示开发容器的标准输入(STDIN),t 则表示告诉docker,为容器创建一个命令行终端
Docker系列整理(二)之docker的基本操作_第3张图片
如果想要退出终端,输入命令exit即可
在这里插入图片描述

容器启动

如果使用了docker run 命令创建了容器,则创建完成后容器就已经启动了,如果使用了 docker create 命令创建了容器,则需要再执行 docker start 命令来启动容器,使用 docker start 命令结合容器 id 或者容器 name 可以启动一个容器,如下:
Docker系列整理(二)之docker的基本操作_第4张图片
docker start 启动的是一个已经存在的容器,要使用该命令启动一个容器,必须要先知道容器的 id 或者 name ,开发者可以通过这两个属性启动一个容器(案例中,nginx 是通过 id 启动)。一般来说,第一次可以使用 docker run 启动一个容器,以后直接使用 docker start 即可。

容器重启

容器在运行过程中,会不可避免的出问题,出了问题时,需要能够自动重启,在容器启动时使用 –restart 参数可以实现这一需求。根据 docker 官网的解释,docker 的重启策略可以分为 4 种,如下:
Docker系列整理(二)之docker的基本操作_第5张图片
四种的含义分别如下:

no表示不自动重启容器,默认即此。
on:failure:[max-retries]表示在退出状态为非0时才会重启(非正常退出),有一个可选择参数:最大重启次数,可以设置最大重启次数,重启次数达到上限后就会放弃重启。
always表示始终重启容器,当docker守护进程启动时,无论容器当时的状态为何,都会尝试重启容器。
unless-stopped表示始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它。

容器停止

可以通过命令docker stop来停止容器
在这里插入图片描述
可以指定name或者id来停止

容器删除

单个删除

容器停止后还依然存在,如果需要,还可以通过 docker start 命令再次重启一个容器,如果不需要一个容器,则可以通过 docker rm 命令删除一个容器。删除容器时,只能删除已经停止运行的容器,不能删除正在运行的容器。如下:
Docker系列整理(二)之docker的基本操作_第6张图片
可以通过 name 或者 id 删除一个容器。如果非要删除一个正在运行的容器,可以通过 -f 参数实现,如下:

批量删除

容器也可以实现批量删除,如下:

docker rm $(docker ps -a -q)

docker ps -a -q 会列出所有容器的 id ,供 rm 命令删除。

你可能感兴趣的:(Docker,docker)