Docker如何进入启动容器

发布时间 - 2026-01-11 02:34:07    点击率:

本文介绍了Docker如何进入启动容器,分享给大家,具体如下:

在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。

这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。

1、attach命令

attach命令是Docker自带的命令,命令格式为:

docker attach [–detach-keys[=[]]] [–no-stdin] [–sig-proxy[=true]] Container

支持三个主要选项:

·–detach-keys[=[]]:指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q;

·–no-stdin=true|false:是否关闭标准输入,默认是保持打开;

·–sig-proxy=true|false:是否代理收到的系统信号给应用进程,默认为true。

但是,使用attach命令有时候并不方便。当多个窗口同时使用attach命令连到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。

2、exec命令

Docker从1.3.0版本起提供了一个更加方便的exec命令,可以在容器内直接执行任意命令。该命令的基本格式为:

docker exec [-d|–detach] [–detach-keys[=[]]] [-i|–interactive] [–privileged] [-t|–tty] [-u|–user[=USER]] CONTAINER COMMAND [ARG…]。

比较重要的参数有:

·-i,–interactive=true|false:打开标准输入接受用户输入命令,默认为false;

·–privileged=true|false:是否给执行命令以高权限,默认为false;

·-t,–tty=true|false:分配伪终端,默认为false;

·-u,–user=”“:执行命令的用户名或ID。

例如进入到刚创建的容器中,并启动一个bash:

可以看到,一个bash终端打开了,在不影响容器内其他应用的前提下,用户可以很容易与容器进行交互。
通过指定-it参数来保持标准输入打开,并且分配一个伪终端。通过exec命令对容器执行操作是最为推荐的方式。

3、nsenter 工具

在util-Linux软件包版本2.23+中包含nsenter工具。如果系统中的util-linux包没有该命令,可以按照下面的方法从源码安装:

$ cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;
$ ./configure --without-ncurses
$ make nsenter && cp nsenter /usr/local/bin

为了使用nsenter连接到容器,还需要找到容器进程的PID,可以通过下面的命令获取:

PID=$(docker inspect --format "{{ .State.Pid }}" )

通过这个PID,就可以连接到这个容器:

$ nsenter --target $PID --mount --uts --ipc --net --pid

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# docker  # 进入运行容器  # 运行容器  # docker容器直接退出如何进入容器调试模式  # Docker如何安全地进入到容器内部  # docker用root进入容器的操作  # docker空间爆满导致的进入容器失败的解决方案  # 详解如何进入、退出docker容器的方法  # Docker 使用nsenter工具进入容器的操作  # Docker 容器操作退出后进入解决办法  # Docker容器进入的4种方式(小结)  # 默认为  # 连接到  # 格式为  # 容器内  # 多个  # 很容易  # 有多  # 作了  # 可以通过  # 软件包  # 给大家  # 可以看到  # 这个时候  # 还需要  # 种方法  # 自带  # 用户可以  # 第三方  # 后会  # 大家多多 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高防服务器租用如何选择配置与防御等级?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  大型企业网站制作流程,做网站需要注册公司吗?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  如何快速完成中国万网建站详细流程?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  如何在云服务器上快速搭建个人网站?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何彻底卸载建站之星软件?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  如何在阿里云ECS服务器部署织梦CMS网站?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel如何使用Eloquent进行子查询  如何在阿里云购买域名并搭建网站?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel如何处理CORS跨域请求?(配置示例)  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何在服务器上配置二级域名建站?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Thinkphp 中 distinct 的用法解析  百度浏览器如何管理插件 百度浏览器插件管理方法  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  如何快速生成可下载的建站源码工具?  EditPlus中的正则表达式实战(5)  中山网站制作网页,中山新生登记系统登记流程?  Laravel如何实现API资源集合?(Resource Collection教程)  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  如何快速生成橙子建站落地页链接?  如何在Windows虚拟主机上快速搭建网站?  Java类加载基本过程详细介绍