马上注册,自学更多教程,下载更多资源。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用SSH进入Docker下进行指令操作
前提条件:
确保 Docker 容器正在运行。你可以通过docker ps命令来查看正在运行的容器列表。这个命令会显示容器的 ID、镜像名称、创建时间、状态、端口映射等信息。例如:
[Plain Text] 纯文本查看 复制代码 docker ps
输出结果可能类似如下:
plaintext
[Plain Text] 纯文本查看 复制代码
CONTAINER ID IMAGE CREATED STATUS PORTS NAMES
123456789abc centos 10 minutes ago Up 10 minutes my_container
其中123456789abc是容器 ID,my_container是容器名称,这些信息在后续进入容器终端时会用到。
进入容器终端的方法:
1、使用docker exec命令(推荐)
语法:docker exec -it <容器ID或名称> /bin/(如果容器内的默认 shell 是)或者docker exec -it <容器ID或名称> /bin/sh(如果容器内是sh作为默认 shell)。
例如,对于上面提到的容器,可以使用以下命令进入容器终端:
[Plain Text] 纯文本查看 复制代码 docker exec -it 123456789abc /bin/
或者
[Plain Text] 纯文本查看 复制代码 docker exec -it my_container /bin/
解释:
-it是两个参数的组合。-i表示以交互模式运行,允许你在容器终端中输入命令并获取输出;-t表示为容器终端分配一个伪终端,这样会使终端体验更接近本地终端的操作。
<容器ID或名称>就是前面通过docker ps查看到的容器标识,用于指定要进入终端的容器。
/bin/或/bin/sh是在容器内要启动的 shell 程序,用于提供命令行交互环境。
2、使用nsenter工具(较复杂,适用于特殊情况)
首先需要安装nsenter工具。在基于 Debian 或 Ubuntu 的系统中,可以使用以下命令安装:
[Plain Text] 纯文本查看 复制代码 sudo apt -y install util - linux
在基于 CentOS 或 RHEL 的系统中,可以使用:
[Python] 纯文本查看 复制代码 sudo yum -y install util - linux - ng
然后找到容器的 PID(进程 ID)。可以通过docker inspect命令来获取。例如:
[Plain Text] 纯文本查看 复制代码 docker inspect -f '{{.State.Pid}}' 123456789abc
这个命令会输出容器对应的进程 ID,假设输出为9876。
最后使用nsenter工具进入容器。例如:
[Plain Text] 纯文本查看 复制代码 nsenter -t 9876 -m -u -i -n -p /bin/
解释:
-t指定目标进程的 PID(这里是前面获取到的容器进程 ID)。
-m、-u、-i、-n、-p分别表示挂载命名空间、用户命名空间、IPC 命名空间、网络命名空间和 PID 命名空间,通过这些参数可以让nsenter工具进入容器对应的各种命名空间,从而在容器的环境中执行命令。
/bin/同样是启动容器内的 shell 程序用于交互。
进入容器终端后,你就可以在容器内部执行各种命令,如安装软件、配置环境、查看文件等,就好像你在容器所在的操作系统内部进行操作一样。
上一篇:Docker中宝塔安装插件报错检测到系统组件wget不存在 下一篇:群晖NAS网络开启macvlan添加bridge-host模式避免端口冲突 |