当前位置: 首页 > 科技观察

IT工程师需要掌握的容器技术Docker容器管理

时间:2023-03-14 19:14:39 科技观察

今天这篇文章我们主要了解Docker容器管理的一些基础知识以及如何使用它的命令。01运行容器先看一下运行容器的命令格式,如下:1.dockercontainerrun[OPTIONS]IMAGE[COMMAND[ARGS...]]dockerrun命令经常跟的参数如下:1)-i或--interactive,交互模式。2)-t或--tty,分配一个伪终端。3)--rm退出后自动移除容器。4)-p将容器的端口映射到主机。5)-v或--volume,指定数据卷现在我们创建一个容器,然后运行命令“echo'Hichenge'”如下图:1.dockercontainerrunubuntuecho"HIchenge"如上,我们可以看到执行过程如下:1)命令下面的镜像命名系统会先检查本地是否存在该镜像。如果没有,它会下载到远程镜像仓库。2)镜像下载完成后,会自动启动并执行创建命令后面的命令。自动退出如上图所示。这里一定有读者问我执行完容器没有自动退出怎么办?其实很简单,只要在创建容器的时候添加一条命令让它保持运行即可,比如/bin/bash命令。接下来,我们创建一个容器以使其在不退出的情况下保持运行。命令如下:1、dockercontainerrun-itubuntu/bin/bash这边的-it参数是打开一个伪终端。创建容器后,我们会自动进入容器终端,如下图:此时如果想退出终端界面怎么办?有两种方法:1)直接通过exit命令退出。执行完这条命令后,我们退出终端,容器也会同时停止运行。P”和“Ctrl+q”命令退出,这种方式退出容器会进入后台运行,不会停止运行。其实我们可以在创建容器的时候直接加上-d命令,这样容器就会后台自动运行不需要然后进入终端再退出这么繁琐的操作具体命令如下:1.dockercontainerrun-itdubuntu/bin/bash02containercreation上面章节介绍的dockerrun命令不只是创建一个容器,它与创建的容器同时运行在容器上。下面介绍一下只创建容器不运行容器的命令。具体命令格式如下:1.#Createcontainercommand2.dockercontainercreate[OPTIONS]IMAGE[COMMAND][ARG...]上面的命令会创建一个带有指定镜像的容器。但是它不会运行容器,它后面经常跟的参数如下:1)--name为创建的容器指定一个名称2)--hostname设置容器主机名3)--network指定容器网络type,当前容器常用的网络类型有none、host、bridge。如果创建容器时没有指定网络类型,默认使用bridge,即桥接docker0。在接下来的章节中,我们将详细解释容器网络类型。请注意4)--ulimit设置容器资源限制,命令格式与linux的ulimit用法一致,参数如下:现在我们通过容器创建命令创建一个容器,并设置容器名称为test1,容器的主机名为test,网络使用docker默认网络(bridge),并限制容器的进程范围3000到4000如下:当容器创建成功后,会主动打印其ID.容器ID有两种格式:1)UUIDlonglabelformat,即创建并打印的String字符2)UUIDshort-labelformat,即long-labelformat的简称。我们在操作容器的时候,可以同时使用长标签UUID和短标签UUID(这里需要注意的是,短标签UUID可能会重复,毕竟是截断了长标签UUID的部分内容),以及也可以通过容器名来操作容器。03删除容器删除容器的具体命令如下:1.#删除容器2.dockercontainerrm[OPTIONS]CONTAINER[CONTAINER...]现在我们删除刚才创建的test1容器如下:如果我们要删除容器在分批,我们可以执行如下命令:1.#分批删除容器,其中dockercontainerls-aq是列出所有已有容器的UUID,-f是强制删除2.dockercontainerrm-f$(dockercontainerls-aq)我们现在删除系统中的所有容器如下图所示:04容器启动、停止和重启我们先来看看容器启动的命令格式。容器的状态会由created变为up,如下图:接下来我们看一下停止容器的命令格式1.#Stopthecontainer2.dockercontainerstopCONTAINER[CONTAINER...]我们将停止容器我们刚刚开始,如下图所示:现在我们将通过容器的重启命令重启停止的容器test1。重启命令格式如下格式如下:1.#暂停容器2.dockercontainerpauseCONTAINER[CONTAINER...]我们将暂停刚刚重启的容器,此时容器的状态会切换从UP状态到paused状态。现在我们恢复暂停的容器,容器恢复命令如下1.#recovercontainer2.dockercontainerunpauseCONTAINER[CONTAINER...]06进入正在运行的容器,执行容器命令,容器日志管理和容器进程管理进入的前提container就是容器在创建的时候打开了一个伪终端,具体如下:1.#进入容器2.dockercontainerattach[OPTIONS]CONTAINER其实我们还有一种进入容器的方式,就是执行容器命令exec我们接下来会讲到,然后我们通过exec进入容器如下所示:1.#exec执行命令格式2.dockercontainerexec[OPTIONS]CONTAINERCOMMAND[ARG...]attach和exec命令进入容器的主要区别如下:1)attach是一个直接进入容器的terminal,不会启动新的进程,而这个命令是在查看容器终端的输出时经常使用2)exec是在容器中打开一个新的终端,并启动一个新的进程。我们一般使用这个命令来操作容器。接下来我们来了解一下容器的日志管理。容器日志管理命令格式如下:1.#查看容器日志2.dockercontainerlogs[OPTIONS]CONTAINER我们重新创建一个test2容器,让它通过执行shell循环语句不断打印“HIchenge”字符串。详情如下。我们使用容器日志查看命令查看容器终端打印的信息。最后,我们来学习一下如何查看容器中的进程,查看容器进程的命令格式如下1.#Viewcontainerprocess2.dockercontainertopCONTAINER我们来查看刚刚创建的test1和test2的容器进程。具体如下:以上就是我们Docker容器管理的全部内容,是不是很简单。这里建议大家跟着文章去实际操作一下。这样可以更容易记住这些常用的容器管理命令。