一、容器
容器是基于镜像创建的一个运行实例,可以被启动、停止、删除等操作。
容器是动态的,它可以在运行时修改,可以在容器内安装应用程序、修改配置等。
每个容器都是相对独立的、隔离的运行环境,与宿主机和其他容器隔离开来。
简而言之,一个镜像可以创建多个容器。每个容器都使用相同的镜像作为基础,但容器本身可以具有不同的状态、配置和运行时环境。容器是基于镜像运行和维护的实体,它提供了一个隔离的执行环境,使得应用程序能够在其中独立运行。
当我们需要在Docker中运行应用程序时,通常会先选择或创建一个适合的镜像,然后使用该镜像创建一个或多个容器。容器允许我们在隔离的环境中运行应用程序,同时可以方便地管理和部署多个应用程序实例。镜像和容器的组合为我们提供了高度灵活和可移植的应用程序部署方案。
二、容器命令
1、docker run -it -d --name mysql mysql:5.7 /bin/bash
docker run: 运行一个新的容器。
-it: 分配一个伪终端并保持输入输出的连接,使您能够与容器进行交互。
-d: 后台运行容器,使其在后台持续运行。
--name mysql: 为容器指定一个名称,这里将其命名为mysql。mysql:5.7: 使用MySQL 5.7版本的官方镜像作为基础镜像
/bin/bash: 在容器内运行的命令,这里使用/bin/bash启动一个交互式bash终端。
/bin/bash是指在容器内运行的命令解释器。在这个上下文中,它表示在启动MySQL容器时,会在容器内部使用Bash作为交互式的Shell环境。
Bash(Bourne Again SHell)是一种常见的Unix和Linux系统上的命令解释器,它提供了一个交互式的命令行界面。它支持执行命令、执行脚本,以及许多其他Shell功能,如变量、条件语句、循环和函数等。
在上述命令中,/bin/bash指定了容器内启动的默认命令。这意味着一旦容器启动,会自动打开一个Bash终端,以便您可以与容器进行交互,例如执行命令、修改配置文件等操作。您可以在容器内运行其他命令,例如启动MySQL服务,进行数据库操作等。
2、docker stop mysql 停止容器 docker restart mysql 重启容器
3、docker exec -t mysql bash
docker exec: 在正在运行的容器中执行命令。
-it: 分配一个伪终端并保持输入输出的连接,使您能够与容器进行交互。
mysql: 容器的名称或容器ID,这里是mysql。
bash: 在容器内运行的命令,这里使用bash来启动一个交互式终端。
4、docker exec mysql cat /etc/os-release
查看容器使用的操作系统
容器的操作系统通常是由拉取的镜像确定的。镜像是容器的基础构建块,可以看作是一个预先配置好的文件系统,其中包含了应用程序和所需的依赖项。镜像可以基于特定的操作系统构建,例如 Ubuntu、Debian、CentOS 等。
当您从 Docker Hub 或其他镜像仓库中拉取一个镜像时,您实际上是在获取一个特定操作系统的容器文件系统。这意味着容器将使用镜像中预先配置好的操作系统作为其运行时环境。
例如,如果拉取了一个基于 Ubuntu 操作系统的镜像,那么使用该镜像创建的容器将使用 Ubuntu 作为其操作系统。同样地,如果拉取的镜像基于 CentOS,那么容器的操作系统就是 CentOS。
5、docker logs mysql
执行这个命令后,将显示容器的日志输出,其中包括 MySQL 在运行时生成的日志信息。您可以通过滚动条查看完整的日志内容。如果您想要持续监视日志的输出,可以使用 docker logs -f命令来实时跟踪日志的更新
6 、 docker top mysql
docker top mysql命令用于显示指定容器内的运行进程的信息。在这个命令中,"mysql"是容器的名称或容器ID。
这个命令将显示与容器相关的进程的详细信息,包括进程ID(PID)、用户、CPU使用情况、内存使用情况、进程启动时间等。
7、docker historty mysql
docker history mysql命令用于查看Docker镜像的历史记录。在这个命令中,"mysql"是Docker镜像的名称或镜像ID。
执行docker history mysql命令将显示构建Docker镜像时创建每个层的详细信息,包括各层的镜像ID、创建时间、作者、指令等。这些信息可以帮助您了解镜像的构建过程,包括基础镜像、各层之间的差异以及每个层所包含的更改或添加的内容。
8、docker inspect mysql
执行该命令后,将显示有关容器的详细信息,包括网络设置、挂载点、环境变量、容器状态等。该输出是一个 JSON 格式的文本,提供了关于容器配置和运行时状态的各种信息。
9、
docker rename 旧名字 新名字 # 给容器重新命名
docker ps -a #列出所有容器(不加-a就是在运行的)
docker rm 容器实例的ID #删除容器(正在运行容器不能删除,除非加-f选项)
docker kill 容器实例的ID #杀掉容器
docker start 容器实例的ID #启动容器 docker restart 容器实例的ID #重启容器 docker stop 容器实例的ID #停止正在运行的容器
docker cp 本地文件的路径 <CONTAINER_ID>:容器路径
10、
使用 Docker attach 命令:docker attach <container_id>
其中 <container_id> 是要进入的容器的 ID。使用此命令后,你将直接连接到容器的标准输入和输出,与容器内部的终端进行交互。通过按下 Ctrl + C 或输入 exit 可以退出容器。
注意:docker attach 命令默认连接到容器的主进程。如果容器的主进程是一个交互式的终端(如 /bin/bash),你将进入容器内部的交互式终端。如果容器的主进程已经退出,那么 docker attach 命令将无法进入容器。
使用 Docker exec 命令:docker exec -it <container_id> /bin/bash这里的 <container_id> 是要进入的容器的 ID。使用此命令后,将为容器创建一个新的进程,在新的进程中启动交互式的 Bash 终端。你将连接到这个终端,并可以与容器内进行交互。通过输入 exit 可以退出容器。使用 exec 命令可以进入正在运行的容器,也可以进入处于停止状态的容器。