Docker入门篇(二)—— 命令
插播!插播!插播!亲爱的朋友们,我们的Cmake/Makefile/Shell这三个课程上线啦!感兴趣的小伙伴可以去下面的链接学习哦~
构建工具大师-CSDN程序员研修院
一、引言
当我们下载完docker以后,接下来就讲解下一个主题---docker常用的一些命令,在我们在使用虚拟机时+,比如说创建文件或者切换目录还有使用vi编辑器来编辑一些文件内容,都需要在命令端执行一些命令对linux进行操作,其实在docker中也同样如此,我们也需要通过执行一些命令来控制docker,docker命令细分可以分为好几个部分,比如说镜像命令,容器命令等等。当然了首当其冲的命令就是先得明白帮助启动类的命令。
二、帮助启动类命令
比如说,假设你是第一次使用dockers,并且刚刚安装成功,那么你想使用docker,那么就得先启动docker,在docker中,我们需要执行以下命令来启动docker服务:
systemctl start docker
通过这个命令启动了docker服务之后,还可以再执行以下命令查看docker的状态,查看docker是否已经启动成功了。
systemctl status docker
比如说我们已经执行了启动docker命令,再执行查看状态的命令后,我们发现此时状态已经是运行状态了。
假设你已经不需要使用docker了,这时就可以执行以下命令来暂停docker服务:
systemctl stop docker
通过这个命令暂停了docker之后,可以再次执行命令查看docker的状态,查看docker是否已经成功暂停了。
这时我们可以看到docker已经被暂停了。这时如果要重启docker,可以执行以下命令:
systemctl restart docker
这时docker就又被启动了,这时也可以再次执行命令查看docker的状态,查看docker是否又被重新启动了。
这里看到docker服务又被我们重新启动了,倘若你觉得每次都需要启动docker服务很麻烦,那么你就可以使用开机自启动docker服务命令
systemctl enable docker
这样执行这个命令后,就开启虚拟机后就不需要再启动docker服务,它会自动启动。
假设你想查看你所下载的docker的一些基本信息,此时可以执行以下命令:
docker info
这时总端就会输出当前的这个docker的一些概要信息,你就可以查看到你想获取的信息了。另外假设你还想了解docker更多的命令怎么使用,这些命令会产生什么效果,此时可以执行docker help命令去查看docker总体的帮助文档:
这时这个帮助文档就会举例出docker的所有命令了,如果里面有你特别想深入了解的命令,那么你可以执行这条语句,它可以帮助查看docker某具体命令的帮助手册:
Docker 具体命令 --help
假设你感兴趣的是run命令,那么就在终端执行docker run --help
可以看到此时会打印出很多参数,在docker run命令中,不同的参数都发挥着不同的作用。
简单讲解完docker的一些帮助类的命令后,接下来我们来慢慢接触docker的一些其他命令。
三、镜像命令
前面已经讲到过,docker有三个要素,分别为镜像,容器,仓库。其实在每个要素中都有属于它们的命令,首先先来说说镜像命令,在本地主机上我们如何查看本机上的镜像,通常我们执行以下命令就可以列出所有的镜像:
docker images
运行 docker images 命令将显示本地主机上所有已经下载和存储的 Docker 镜像的列表。每行显示一个镜像的详细信息,包括镜像的仓库、标签、镜像 ID、创建时间和大小。
此时可以看到我虚拟机上所有存在的镜像了,如果你是第一次使用的话,这个时候是没有镜像的,所以可能输出就为空。没有镜像没关系,我们可以从镜像仓库里面拉取镜像,此时就可以执行这样的一个指令:
docker pull 镜像名称:版本号
它是一个用于从 Docker 仓库下载特定版本的 Docker 镜像的命令,通过指定镜像名称和版本号,您可以拉取所需的 Docker 镜像到本地主机。Docker 将从仓库中获取指定的镜像,并将其下载到本地。
此时centos镜像应该就被你拉取到本地了,于是可以再次执行docker images再次看到本地是否有你拉取下的镜像。请注意,如果本地主机上已经存在该镜像的最新版本,Docker 将不会重新下载它,而是直接使用本地已有的镜像。如果您需要更新或拉取特定版本的镜像,请确保使用正确的镜像名称和版本号。倘若你想详细了解这个镜像的描述,例如你想搜索一个名叫”centos”的镜像,可以运行以下命令:
docker search 镜像名
它是一个用于搜索 Docker Hub 上的镜像的命令。您可以在命令中指定一个关键字,然后 Docker 会搜索匹配该关键字的镜像。Docker 将返回一个包含匹配该关键字的镜像的列表。每个镜像都有一个描述、一个标签、一个评分和一条相关的 Dockerfile 链接。您可以选择其中一个镜像来下载并使用它。
假设你下载了这个镜像,觉得并没有什么用,那么就可以通过以下命令删除这个镜像:
docker rmi 镜像名
docker rmi 是一个用于删除本地 Docker 镜像的命令。该命令可以删除一个或多个镜像。您可以通过指定镜像名称或镜像 ID 来删除镜像。如果要删除多个镜像,可以在命令中指定多个镜像名称或镜像 ID,这里不得不插播一条命令:
docker images -q
它是一个用于列出本地 Docker 镜像的简短标识符(即镜像 ID)的命令。通过运行 docker images -q 命令,您将获得本地主机上所有镜像的镜像 ID 的列表。每个镜像 ID 都是一个唯一的标识符,用于唯一地标识一个镜像。
使用 docker images -q 命令可以快速获取本地主机上所有镜像的标识符,而无需显示完整的镜像信息。这对于需要使用镜像 ID 进行其他 Docker 命令的情况非常有用。例如说批量删除镜像就可以使用到。
假设你想删除指定的名为centos镜像,指定镜像名或者镜像ID,那么只需要这么做:
如何某个镜像正在使用,或者删除不了,你可以使用-f或者--force参数强制删除镜像。因此需要注意使用 docker rmi 命令时要小心,确保您不会意外删除正在使用的镜像。在删除镜像之前,最好先确认该镜像是否正在被使用。
四、容器命令
Docker 是一个开源的应用容器引擎,它使得开发者可以将应用程序及其依赖打包到一个可移植的容器中,然后将其部署到任何 Docker 环境中。容器是一种轻量级的虚拟化技术,它允许应用程序在不同的平台上运行,而无需对应用程序本身进行任何修改。
Docker 的容器命令是用于创建、运行和管理容器的命令行工具。以下是一些常用的 Docker 容器命令,Docker run 是一个用于创建并启动 Docker 容器的命令。它的语法是:
docker run -id --name=名字 指定镜像:指定版本
这个命令有几个重要的参数和选项,例如:
-d:在后台运行容器。
-p:将宿主机的端口映射到容器端口。
-v:将宿主机的目录或文件挂载到容器中。
--name:为容器指定一个名称。
当你使用 docker run 命令时,Docker 首先会查找本地主机上的 Docker 镜像,如果该镜像不存在,Docker 会从 Docker Hub 或者你指定的仓库中拉取镜像。然后,Docker 会基于该镜像创建一个新的容器,并启动该容器。
总的来说,docker run 命令使得开发者可以快速、简单地创建并运行 Docker 容器,而无需关心底层的虚拟化细节。
例如,生成一个基于镜像mysql的名为test-mysql的容器,此时就成功创建并且启动了一个docker容器。
另外docker ps 是一个用于显示当前正在运行的 Docker 容器的命令。该命令将列出所有正在运行的容器,包括它们的容器 ID、名称、镜像、状态等信息。
除了显示正在运行的容器,docker ps 命令还可以通过添加参数来筛选和排序容器。例如,使用 -a 参数可以显示所有容器,包括已停止的容器。
使用 --format 参数可以自定义输出格式;使用 --no-trunc 参数可以显示完整的容器信息。
此外,docker ps 命令还支持通过管道(pipe)与其他命令结合使用,例如与 grep 命令结合来查找特定容器的信息。
总之,docker ps 命令是用于查看和管理正在运行的 Docker 容器的常用工具之一,它可以帮助用户快速了解容器的运行状态和相关信息。
此外这些容器其实都处于一个运行状态,docker stop 是一个用于停止正在运行的 Docker 容器的命令,它的语法如下:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
其中,CONTAINER 是要停止的容器的标识符或名称。您可以使用多个容器标识符来一次停止多个容器。
docker stop 命令的工作原理是向容器的进程发送一个系统信号来请求它停止。默认情况下,该命令会向容器的 PID 为 1 的进程发送 SIGTERM 信号。如果容器中的进程在默认的超时时间内(默认为 10 秒)没有停止,docker stop 命令将强制发送 SIGKILL 信号来终止进程。
您可以使用 -t 选项来指定一个自定义的超时时间(以秒为单位),例如 docker stop -t 20 会将超时时间设置为 20 秒。此外,您还可以使用 -f 或 --force 选项来强制停止容器,即使容器中的进程没有响应 SIGTERM 信号。
需要注意的是,在容器中运行的进程可能会在收到 SIGTERM 信号后执行清理操作,例如关闭数据库连接或保存数据。因此,如果您选择使用自定义的超时时间或强制停止容器,请确保这些操作不会导致数据丢失或其他潜在问题。
总之,docker stop 命令是用于控制 Docker 容器生命周期的重要工具之一,它允许您停止正在运行的容器,并可以选择性地指定超时时间和是否强制停止容器。