☰
Docker系列---Docker容器其他常用命令(新手小白保姆级实操教程)
2026/10/30 6:52:51 网站建设 项目流程

Docker系列—Docker容器其他常用命令(新手小白保姆级实操教程)

文章目录

  • Docker容器其他常用命令
    • >>>下一节:Docker镜像原理
      • 一、docker exec -it 进入容器的交互式终端
        • 1.基本使用
        • 2.-it
        • 3.docker exec和docker attach的区别
        • 举例区分
        • ①docker exec
        • ②docker attach
      • 二、docker cp 容器和主机之间的拷贝
        • 1.主机的文件拷贝到容器
        • 2.容器的文件拷贝到主机
      • 三、docker inspect 获取容器的详细信息
      • 四、docker stats 查看容器的实时资源使用情况
        • 1.查看正在运行的容器
        • 2.查看所有容器
        • 3.查看某个容器
      • 五、docker logs 查看容器日志
        • 1.查看所有日志
        • 2.持续输出日志
        • 3.查看最新n行日志

Docker容器其他常用命令

>>>下一节:Docker镜像原理

本篇我们将介绍以下容器命令:

进入容器、查看日志、复制文件、获取容器详细信息、查看容器的实时资源使用情况

一、docker exec -it 进入容器的交互式终端

1.基本使用

在正在运行的容器中执行一个新命令

docker exec 容器名 命令
2.-it

-i interact 保持标准输入打开,使程序能够接收输入

-t terminal 分配伪终端,是程序能够以终端交互方式运行

-it 交互式终端

docker exec -it 容器 命令

比如,我们进入myubuntu容器的bash交互环境

# 常用方法 docker exec -it myubuntu bash

进入之后,我们就可以输入Linux命令,和在Linux终端一样,然后exit退出

3.docker exec和docker attach的区别

docker exec

在正在运行的容器中,启动一个新进程来执行指定的命令

docker attach

将**当前终端 **连接到容器主进程已有的标准输入、标准输出和标准错误流

=>你在当前终端输入的内容,可以传递给容器的主进程(前提是容器支持标准输入)

=>容器主进程输出的信息,会显示在你当前的终端

=>容器主进程输出的错误信息,也会显示在你当前的终端

docker exec是在主进程运行的情况下,启动一个新进程来执行命令

docker attach是直接连接到容器的主进程

我们经常使用docker exec 在容器中执行一些命令

举例区分

Ubuntu的主进程是bash

①docker exec

先创建容器myubuntu

docker run -dit --name myubuntu ubuntu

执行bash命令,进入Bash

docker exec -it myubuntu bash

我们在myubuntu的Bash里面执行ls命令

ls

这里进入的并不是ubuntu的主进程中的bash

我们可以查看当前的进程

如下图:

PID为1的/bin/bash:就是主进程

PID为8的bash:就是 "docker exec -it myubuntu bash"这个命令产生的进程

PID为20:我们刚才在bash里面执行了 ps -ef 命令,父进程是bash(PID=8),所以它的PPID=8

myubuntu │ ├── /bin/bash (PID 1, PPID 0) │ └── bash (PID 8, PPID 0) │ └── ps (PID 20, PPID 8)

所以当我们退出的时候,结束的是bash,不影响主进程bash,不会使容器终止

②docker attach

我们来attadh一下刚才的myubuntu

docker attach myubutu
ls

如图,我们已经成功进入了

我们来查询一下进程

ps -ef

如图我们可以看到,只有主进程的/bin/bash了,没有像刚才docker exec 那样创建一个bash了

我们来尝试退出

如图,我们可以看到,容器已经终止了

因为刚才我们所在的是主进程的bash,我们退出bash,也就是结束了主进程

主进程结束,容器终止

看到这里,相信大家已经清楚了这两个命令的区别了

对比项docker execdocker attach
是否创建新进程是否
操作对象新执行的命令容器主进程
是否可以执行指定命令可以不可以
是否可以进入 Bash可以取决于主进程
输入exit结束当前 Shell可能结束容器主进程
日常使用频率很高较低

二、docker cp 容器和主机之间的拷贝

可以把主机的文件拷贝到容器中,也可以把容器中的文件拷贝到主机中

1.主机的文件拷贝到容器
docker cp 主机文件路径 容器:目的路径

例如:宿主机上的test.txt复制到myubuntu容器的/tmp目录下

docker cp /home/song/test.txt myubuntu:/tmp/
2.容器的文件拷贝到主机
docker cp 容器:文件路径 主机路径

例如:将容器内部的/etc/hosts文件复制到宿主机的/home/song/目录

docker cp myubuntu:/etc/hosts /home/song/

三、docker inspect 获取容器的详细信息

docker inspect 容器名

比如:

docker inspect myubuntu

我们可以看到有很多信息

四、docker stats 查看容器的实时资源使用情况

查看容器实时资源使用情况

1.查看正在运行的容器
docker stats
2.查看所有容器
docker stats -a
3.查看某个容器
docker stats 容器名
docker stats myubuntu

由于是实时的,所以我们会一直在这个界面,Ctrl+c退出

五、docker logs 查看容器日志

查看容器日志,-f 持续输出日志,-n 输出n行日志

注意这里是logs,不是log

1.查看所有日志

默认输出所有日志

docker logs

比如,我们查看myubuntu的日志

docker logs myubuntu

2.持续输出日志
docker logs -f 容器名
3.查看最新n行日志
docker logs -n 数字 容器名

比如,我们查看myubuntu的最新一行日志


完结撒花~

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询