几个命令目录
- 1、kubectl exec -n ithmp-prod -it <pod-name> /bin/bash
- 命令组成部分
- 使用场景
- 注意事项
- 2、docker ps
- 基本用法
- 输出格式
- 常用选项
- 1. 列出所有容器(包括已停止的)
- 2. 显示最近创建的容器
- 3. 显示最近创建的几个容器
- 4. 显示容器的详细信息
- 5. 显示容器的完整信息
- 6. 显示容器的特定状态
- 7. 显示特定镜像的容器
- 8. 显示特定名称的容器
- 示例
- 注意事项
- 3、docker exec -it <id> /bin/bash
- 命令组成部分
- 使用场景
- 示例
- 注意事项
- 示例输出
- 4、du -sh *
- 命令组成部分
- 使用场景
- 示例输出
- 扩展用法
- 1. 显示隐藏文件和文件夹
- 2. 按大小排序
- 3. 显示总大小
- 4. 排除特定文件或文件夹
- 注意事项
- 示例
1、kubectl exec -n ithmp-prod -it /bin/bash
docker ps
kubectl exec -n ithmp-prod -it <pod-name> /bin/bash 是一个 Kubernetes 命令,用于在指定的 Pod 中执行命令并进入交互式终端。
以下是对这个命令的详细解释:
命令组成部分
kubectl:Kubernetes 命令行工具,用于与 Kubernetes 集群进行交互。exec:表示执行命令。-n ithmp-prod:指定命名空间(namespace)为ithmp-prod。命名空间是 Kubernetes 中用于隔离资源的逻辑分区,不同的命名空间中的资源是隔离的。-it:两个参数的组合:-i:表示交互式模式,允许用户与容器内的终端进行交互。-t:分配一个伪终端(pseudo-TTY),以便用户可以像在本地终端一样操作。
<pod-name>:需要替换为具体的 Pod 名称。Pod 是 Kubernetes 中的最小部署单元,一个 Pod 可以包含一个或多个容器。/bin/bash:指定在 Pod 中执行的命令,这里是启动一个 Bash 终端。
使用场景
当你需要进入 Kubernetes 集群中的某个 Pod 来进行调试、查看日志、运行命令等操作时,可以使用这个命令。例如:
- 查看 Pod 内部的文件系统结构。
- 检查容器内的服务运行状态。
- 手动执行一些脚本或命令来排查问题。
注意事项
- 权限问题:确保你有足够的权限访问指定的命名空间和 Pod。如果没有权限,可能会报错,提示你没有权限执行操作。
- Pod 状态:Pod 必须处于运行状态(Running),否则无法进入。如果 Pod 处于其他状态(如 Pending、CrashLoopBackOff 等),需要先解决 Pod 的问题。
- 容器数量:如果 Pod 中包含多个容器,需要指定容器名称。例如:
其中kubectl exec -n ithmp-prod -it <pod-name> -c <container-name> /bin/bash-c <container-name>指定了要进入的容器名称。
2、docker ps
docker ps 是 Docker 的一个常用命令,用于列出当前正在运行的容器。以下是对这个命令的详细解释,包括它的常用选项和输出格式。
基本用法
docker ps
这个命令会列出当前正在运行的 Docker 容器。默认情况下,它只显示处于 Running 状态的容器。
输出格式
docker ps 的输出通常包含以下列:
- CONTAINER ID:容器的唯一标识符,通常是一个哈希值。
- IMAGE:容器所使用的镜像名称和标签。
- COMMAND:容器启动时执行的命令。
- CREATED:容器创建的时间。
- STATUS:容器的当前状态(例如:Up 10 minutes、Exited (0) 10 minutes ago)。
- PORTS:容器暴露的端口及其映射到宿主机的端口。
- NAMES:容器的名称。
常用选项
以下是一些常用的 docker ps 选项:
1. 列出所有容器(包括已停止的)
docker ps -a
-a或--all:显示所有容器,包括已停止的容器。
2. 显示最近创建的容器
docker ps -l
-l或--latest:显示最近创建的容器(包括已停止的)。
3. 显示最近创建的几个容器
docker ps -n 5
-n或--last:显示最近创建的指定数量的容器(包括已停止的)。例如,-n 5表示显示最近创建的 5 个容器。
4. 显示容器的详细信息
docker ps -s
-s或--size:显示每个容器的大小。
5. 显示容器的完整信息
docker ps -f
-f或--format:自定义输出格式。例如,只显示容器名称:docker ps --format "{{.Names}}"
6. 显示容器的特定状态
docker ps --filter "status=running"
--filter:根据特定条件过滤容器。例如:- 显示正在运行的容器:
docker ps --filter "status=running" - 显示已停止的容器:
docker ps --filter "status=exited"
- 显示正在运行的容器:
7. 显示特定镜像的容器
docker ps --filter "ancestor=my-image"
--filter:根据镜像名称过滤容器。例如:docker ps --filter "ancestor=my-image"
8. 显示特定名称的容器
docker ps --filter "name=my-container"
--filter:根据容器名称过滤容器。例如:docker ps --filter "name=my-container"
示例
假设你运行了以下命令:
docker ps
输出可能如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
123456789abc my-image:1.0 "/bin/sh -c 'python..." 10 minutes ago Up 10 minutes 0.0.0.0:8080->80/tcp my-container
如果你运行:
docker ps -a
输出可能包括已停止的容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
123456789abc my-image:1.0 "/bin/sh -c 'python..." 10 minutes ago Up 10 minutes 0.0.0.0:8080->80/tcp my-container
def456789012 my-image:2.0 "/bin/sh -c 'python..." 20 minutes ago Exited (0) 10 minutes ago my-container-2
注意事项
- 权限问题:确保你有权限访问 Docker 守护进程。如果没有权限,可能会报错,提示你没有权限执行操作。
- Docker 守护进程状态:确保 Docker 守护进程正在运行。如果守护进程未启动,
docker ps命令会报错。
3、docker exec -it /bin/bash
docker exec -it <id> /bin/bash 是一个 Docker 命令,用于在指定的 Docker 容器中启动一个交互式的 Bash 终端。以下是对这个命令的详细解释,包括它的组成部分、使用场景和注意事项。
命令组成部分
-
docker exec:- 用于在运行中的容器中执行命令。
- 这个命令允许你在容器内部运行一个新的进程,而不需要重新启动容器。
-
-it:- 这是两个参数的组合:
-i(--interactive):保持 STDIN 打开,即使没有附加终端,也可以与容器进行交互。-t(--tty):分配一个伪终端(pseudo-TTY),以便用户可以像在本地终端一样操作。
- 这是两个参数的组合:
-
<id>:- 容器的 ID 或名称。你可以通过
docker ps命令获取正在运行的容器的 ID 或名称。
- 容器的 ID 或名称。你可以通过
-
/bin/bash:- 指定在容器中要执行的命令。在这里,
/bin/bash表示启动一个 Bash 终端。
- 指定在容器中要执行的命令。在这里,
使用场景
当你需要进入一个正在运行的 Docker 容器内部进行调试、查看日志、运行命令等操作时,可以使用这个命令。例如:
- 检查容器内部的文件系统结构。
- 查看服务的日志文件。
- 手动运行一些命令来排查问题。
示例
假设你有一个正在运行的容器,其 ID 是 123456789abc,你可以通过以下命令进入该容器的 Bash 终端:
docker exec -it 123456789abc /bin/bash
如果容器使用的是其他类型的 shell(如 /bin/sh),你可以相应地修改命令:
docker exec -it 123456789abc /bin/sh
注意事项
-
容器必须处于运行状态:
- 只有当容器处于运行状态(Running)时,
docker exec命令才能成功执行。如果容器已停止,你需要先启动它:docker start <id>
- 只有当容器处于运行状态(Running)时,
-
容器内必须有
/bin/bash:- 如果容器的镜像中没有安装 Bash,这个命令会失败。你可以尝试使用其他 shell,如
/bin/sh或/bin/tcsh。
- 如果容器的镜像中没有安装 Bash,这个命令会失败。你可以尝试使用其他 shell,如
-
退出容器:
- 当你完成操作后,可以通过以下方式退出容器:
- 输入
exit命令。 - 按下
Ctrl+D。
- 输入
- 请注意,退出容器不会停止容器的运行。容器将继续在后台运行。
- 当你完成操作后,可以通过以下方式退出容器:
-
权限问题:
- 确保你有足够的权限访问容器。如果没有权限,可能会报错,提示你没有权限执行操作。
示例输出
假设你运行了以下命令:
docker exec -it 123456789abc /bin/bash
如果一切正常,你将看到类似以下的输出:
root@123456789abc:/#
4、du -sh *
du -sh * 是一个 Linux 命令,用于显示当前目录下各个文件和文件夹的磁盘占用空间大小。以下是对这个命令的详细解释,包括它的组成部分、使用场景和一些扩展用法。
命令组成部分
-
du:du是 disk usage 的缩写,用于显示文件或目录的磁盘占用空间大小。
-
-s:-s(--summarize):表示对每个参数只显示总计大小,而不是显示每个文件或子目录的大小。这使得输出更加简洁。
-
-h:-h(--human-readable):以易读的格式显示大小(例如,以 KB、MB、GB 等单位显示,而不是以字节为单位)。
-
*:*是一个通配符,表示当前目录下的所有文件和文件夹。du命令会对每个匹配的文件或文件夹计算磁盘占用空间。
使用场景
当你需要快速了解当前目录下各个文件和文件夹的磁盘占用情况时,可以使用这个命令。例如:
- 查找占用空间较大的文件或文件夹。
- 评估磁盘空间的使用情况。
- 在清理磁盘空间之前,确定哪些文件或文件夹可以删除。
示例输出
假设你运行了以下命令:
du -sh *
输出可能如下:
4.0K file1.txt
1.2M folder1
200K image.jpg
8.0K script.sh
这个输出表示:
file1.txt占用了 4.0 KB 的磁盘空间。folder1占用了 1.2 MB 的磁盘空间。image.jpg占用了 200 KB 的磁盘空间。script.sh占用了 8.0 KB 的磁盘空间。
扩展用法
1. 显示隐藏文件和文件夹
默认情况下,du -sh * 不会显示隐藏文件(以 . 开头的文件)。如果你希望包括隐藏文件,可以使用以下命令:
du -sh .[^.]* *
或者使用 find 命令:
du -sh $(find . -maxdepth 1)
2. 按大小排序
如果你希望按大小对输出结果进行排序,可以结合 sort 命令:
du -sh * | sort -h
sort -h:以人类可读的格式对大小进行排序。
3. 显示总大小
如果你想显示当前目录下所有文件和文件夹的总大小,可以使用:
du -sh .
这将显示当前目录的总磁盘占用情况。
4. 排除特定文件或文件夹
如果你希望排除某些文件或文件夹,可以使用 --exclude 选项:
du -sh --exclude='*.log' *
这个命令会排除所有 .log 文件。
注意事项
-
磁盘空间与文件大小的区别:
du显示的是文件或目录占用的磁盘空间大小,而不是文件的实际大小。例如,稀疏文件(sparse files)可能显示的磁盘占用空间比实际文件大小小。
-
文件系统限制:
- 如果文件系统中有大量小文件,
du命令可能会运行较慢,因为它需要逐个计算每个文件的大小。
- 如果文件系统中有大量小文件,
-
权限问题:
- 如果你没有权限访问某些文件或目录,
du命令可能会报错。你可以使用sudo来提升权限:sudo du -sh *
- 如果你没有权限访问某些文件或目录,
示例
假设你运行了以下命令:
du -sh * | sort -h
输出可能如下:
4.0K file1.txt
8.0K script.sh
200K image.jpg
1.2M folder1
这个输出表示:
file1.txt占用了 4.0 KB 的磁盘空间。script.sh占用了 8.0 KB 的磁盘空间。image.jpg占用了 200 KB 的磁盘空间。folder1占用了 1.2 MB 的磁盘空间,并且结果已经按大小排序。
