【Docker学习总结】5.Docker容器的基本操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013517797/article/details/83758482

上一篇我们介绍了Docker的安装和部署,本篇总结Docker安装完毕后,我们如何进行一些基本的操作。

首先打开我们之前安装好docker ce的Cent OS7虚拟机,使用“docker version”验证docker已经安装成功:

然后我们来学习如何操作docker容器:

(1)启动容器

在docker中,我们使用run命令来启动一个容器,并执行容器中的命令。
run命令的格式如下:

docker run IMAGE [COMMAND][ARG...]

其中第一个参数“IMAGE”,是指定启动容器所指定的操作系统镜像。后面的“COMMAND”、“ARG”指的是容器启动后,运行的命令及其参数。
下面我们启动一个容器,并输出“Hello World”:

上面我们输入了“docker run centos echo "Hello World"”,docker检测到目前本地仓库没有名为“centos”的镜像,然后自动从我们之前建立连接的远程仓库中进行Pull操作(可以认为是从远程下载至本地仓库),然后加载为本地的容器(镜像+可读层),最终在该容器中执行了echo命令,打印了“Hello World”。而再次执行该命令时,就会直接打印,因为容器之前已经创建成功了,无需再次下载。
最后,我们的容器在执行完命令之后,就停止了。所以,这里的容器只是执行单次命令的一个容器。

这里一次启动,执行一个命令的容器,是docker中最基本的容器运行方式。

(2)启动交互式容器

启动交互式容器依然使用run命令,只是需要添加一些参数,命令的格式如下:

docker run -i -t IMAGE /bin/bash

这里在run命令后添加了“-i”和“-t”的参数,并在容器启动时,运行“bash”命令。其中:
●-i --interactive=true|false
是指interactive,是用来告诉docker守护进程,为容器始终打开标准输入。其值为true或false,默认是false。

●-t --tty=true|false
是指tty,是用来告诉docker,要为创建的容器分配一个伪tty终端,这样,新创建的容器,才能提供一个交互式的shell。其值为true或false,默认是false。

下面我们来演示一下,在启动时添加“-i”和“-t”的参数,并使用base命令来启动:

docker run -i -t centos /bin/bash


我们可以看到,输入命令之后,命令行跳入了另一个shell交互平台上,而这个交互平台,就是操作系统为“centos”的容器的base交互界面。通过这个页面,我们就可以于新建的容器进行交互,运行一些常用的命令,就像我们在使用虚拟机一样:

想要退出容器的话,使用“exit”命令来退出:

(3)查看容器

如何查看曾经建立过的容器呢?这就需要docker的“ps”命令:

docker ps [-a][-l]

其中“-a”是指列出所有的容器,而“-l”是指列出最新创建的容器。
我们来演示一下,这里我们再创建一个debian操作系统的容器:

这样我们本地就有两个容器了,一个是centos系统的,一个是debian系统的。

我们直接使用“docker ps”来进行容器的查看:

发现什么也没有,这是为什么呢?这是因为我们之前新建的两个容器在运行后已经停止了。而当不给ps指定任何参数时,docker的ps命令返回的是正在运行的docker容器。要查看所有的容器,就需要使用“-a”参数:

我们可以看到,这里列出来容器,就是最近我们运行过的容器。我们注意到,该列表给出了很丰富的信息:
第一列【CONTAINER ID】,是一串数字和字母的组合,这是docker的守护进程在启动容器时,为容器分配的唯一ID。而最后一列【NAMES】,也是docker守护进程为容器自动分配的名字。
如果我们需要查看具体的容器信息,可以使用inspect命令:
docker inspect 容器ID|容器NAME
这里我们使用容器ID看一下之前的centos容器:

我们可以看到,inspect命令会对容器进行详细的检查,然后返回其配置信息,包括“名称”、“命令”、“网络配置”以及很多有帮助的数据。当然,每次使用ID查看也很不方便,使用docker自定义的名字也挺记不清的,这里docker提供了能够自定义容器的命名方式:

docker run --name=自定义名 -i -t IMAGE /bin/bash

我们在执行run命令时,只需要在前面添加“--name”参数,进行自定义名称的指定即可。例如下面我们使用name选项定义一个名字:

这里我们定义了一个名为“pi_ka_qiu”(皮卡丘)的名字,然后查看容器,就可以看到刚才新建的自定义名称的容器:

这里很多童鞋会有疑问,刚刚创建的所有容器都在运行命令后停止了,很多时候,我们运行一个命令并不需要重新建立一个容器,如果我们每次运行命令都要建立一个容器会很麻烦,尤其是在运行相同的命令时。
此时我们可以通过“重新启动停止的容器”来解决该问题。

(4)重新启动停止的容器

docker提供了一个重新启动已经停止的容器的方式。使用start命令即可:

docker start [-i] 容器ID|容器NAME

下面我们重新启动刚刚建立过,已经停止的容器:

可以重新启动名为“pi_ka_qiu”的容器,并执行相关命令和退出shell控制台。

(5)删除停止的容器

除了重新启动停止的容器外,我们也可以删除停止的容器(不能删除正在运行的容器):

docker rm 容器ID|容器NAME

我们删除刚才建立的名为“pi_ka_qiu”的容器:

可以看到,执行完rm命令后,容器列表中就已经没有了该容器。

(5)总结

本篇我们学习了docker的5个命令,分别是:
●docker run --name=自定义名 -i -t IMAGE /bin/bash
●docker ps -a -l
●docker inspect 容器ID|容器NAME
●docker start 容器ID|容器NAME
●docker rm 容器ID|容器NAME

下一篇我们继续总结有关Docker守护式容器的相关知识。

转载请注明出处:https://blog.csdn.net/acmman/article/details/83758482

参考资料:
《极客学院Docker学习》教学视频

猜你喜欢

转载自blog.csdn.net/u013517797/article/details/83758482