版权所有,未经许可,禁止转载



Docker镜像是一个文件系统,有时需要进入容器内部的shell,例如:查看配置文件的内容。

正在运行的容器,可以通过docker exec命令进入它的shell终端:

docker exec -it <container-id> /bin/bash
  • -i 标志告诉docker保持stdin打开(以便您可以输入命令)。
  • -t 标志分配一个伪tty。

举例说明

1. 运行nginx镜像

[root@qikegu docker]# docker run -d nginx

2.查看nginx容器ID


[root@qikegu docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
87c324a31476 nginx "nginx -g 'daemon of…" 54 seconds ago Up 53 seconds 80/tcp trusting_vaughan

3. 进入容器,运行一个bash shell

[root@qikegu docker]# docker exec -it 87c324a31476 /bin/bash
root@87c324a31476:/#

可以看到我们进入了容器中的shell了。

4. 在容器的shell中执行命令

root@87c324a31476:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@87c324a31476:/# ps
bash: ps: command not found

容器中不存在的命令(上面的ps)不能执行

5. 退出shell

直接使用exit命令退出shell,容器自身也将停止运行。

使用ctrl + p + q,可以退出shell,容器仍将继续运行。

docker attach, docker exec, docker run 区别

  • docker attach - 不是用于在容器中运行额外的东西,而是用于附加到正在运行的进程。如果容器中正在运行的是nginx,会attach到nginx进程,获得nginx的标准输出。
  • docker exec - 专门用于在已经启动的容器中运行新东西,无论是shell还是其他进程
  • docker run - 用于运行新容器,可以指定容器中要运行的命令。如果不指定,运行镜像默认命令,例如:运行nginx容器时,docker run nginx没有指定命令,会运行nginx应用,docker run -it nginx /bin/bash,指定了/bin/bash,会运行此命令。

Docker 容器shell的更多相关文章

  1. Docker 容器(container)

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  2. 如何启动一个已经创建的docker 容器,并进入SHELL 对其操作

    腾讯云使用自己的docker镜像安装后无法启动,下边这个亲测是可用的 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A ...

  3. 在宿主机上执行docker容器内部的shell或程序

    为了避免反复进入docker容器内部操作,可以将一系列容器内部的指令由宿主机来操作完成. 在宿主机(作者主机为windows7)上执行centos容器(name为centos-1)中/usr目录下的“ ...

  4. 理解Docker容器的进程管理

    摘要: Docker在进程管理上有一些特殊之处,如果不注意这些细节中的魔鬼就会带来一些隐患.另外Docker鼓励"一个容器一个进程(one process per container)&qu ...

  5. Docker容器概念讲解

    Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源. Docker是通过内核虚 ...

  6. 给一个正在运行的Docker容器动态添加Volume

    给一个正在运行的Docker容器动态添加Volume本文转自:http://dockone.io/article/149 [编者的话]之前有人问我Docker容器启动之后还能否再挂载卷,考虑到mnt命 ...

  7. 通过nsenter连接docker容器

    通常连接Docker容器并与其进行交互有四种方法.详情见:https://github.com/berresch/Docker-Enter-Demo,下面摘录nsenter连接的方式. 查看是否安装n ...

  8. [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务

    转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...

  9. 如何在Fedora 22上面配置Apache的Docker容器

    在这篇文章中,我们将会学习关于Docker的一些知识,如何使用Docker部署Apache httpd服务,并且共享到Docker Hub上面去.首先,我们学习怎样拉取和使用Docker Hub里面的 ...

随机推荐

  1. ubuntu 文件操作

    linux的文件目录是一棵目录树,默认起始位置在主文件夹(/home/city),里面有若干子文件(视频.图片.下载.桌面等) 一.文件路径(目录操作) 1.绝对路径:从根目录/写起,完整的.详细的描 ...

  2. Ubuntu安装docker并修改镜像仓库

    首先切换到root用户 安装docker wget -qO- https://get.docker.com/ | sh 使用docker -v查看docker版本 创建daemon.json 并键入以 ...

  3. 微信小程序(基础)

    文档官网:https://developers.weixin.qq.com/miniprogram https://developers.weixin.qq.com/miniprogram/dev/f ...

  4. 用java实现输出英文小说飘中出现次数最多的前N个单词(附:使用文件读写)

    本文参考于:https://blog.csdn.net/u014204432/article/details/40348839 一.题目 输出单个文件(<飘> 英文版)中的前 N 个最常出 ...

  5. 第1节 storm编程:8、storm的分发策略

    8. Storm的分发策略 Storm当中的分组策略,一共有八种: 所谓的grouping策略就是在Spout与Bolt.Bolt与Bolt之间传递Tuple的方式.总共有八种方式: 1)shuffl ...

  6. storm的JavaAPI运行报错

    报错:java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout 原因:idea的bug:本地运行时设置scope为pro ...

  7. js 用于运行string中的<script>和</script>之间的函数

    /** * Created by 炜文 on 2017/2/15. */ var intext = '485222<script> var i=2;var j=2;console.log( ...

  8. ORACLE锁表问题

    1.查询锁表的信息 select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name, ao.object_name,lo.locked ...

  9. 题解 LG P2264

    这是题解P2264 先讲一下Trie,其实Trie也名前缀树,就是说:如果Trie中某串是某串的前缀,那么我们可以共用这个串也就是这样: 插入h.hk.jc,jcfa 那么,h节点会给h和hk共用,j ...

  10. 腾讯云直播生成推流链接node.js版

    /** * 获取推流地址 * 如果不传key和过期时间,将返回不含防盗链的url * @param domain 您用来推流的域名 * streamName 您用来区别不同推流地址的唯一流名称 * k ...