将Shell附加到Docker容器

通常,需要将外壳附加到已经运行的Docker容器上。 这非常有用,尤其是对于调试。 该博客将说明如何将Shell附加到已经运行的Docker容器。

因此,假设您以分离模式运行Couchbase Docker容器:

> docker run -d couchbase/server
02061ddf0a3d1b2806a1ee6e354f4064d9d2ff4d84d8c96c0273c8883917a92f

在这种情况下,运行容器将为您提供完整的容器ID,即02061ddf0a3d1b2806a1ee6e354f4064d9d2ff4d84d8c96c0273c8883917a92f

可以验证为:

> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                        NAMES
02061ddf0a3d        couchbase/server    "/entrypoint.sh couch"   38 seconds ago      Up 37 seconds       8091-8093/tcp, 11207/tcp, 11210-11211/tcp, 18091-18092/tcp   clever_hypatia

或完整的容器ID可以验证为:

> docker ps --no-trunc
CONTAINER ID                                                       IMAGE               COMMAND                             CREATED              STATUS              PORTS                                                        NAMES
02061ddf0a3d1b2806a1ee6e354f4064d9d2ff4d84d8c96c0273c8883917a92f   couchbase/server    "/entrypoint.sh couchbase-server"   About a minute ago   Up 59 seconds       8091-8093/tcp, 11207/tcp, 11210-11211/tcp, 18091-18092/tcp   clever_hypatia

将Shell附加到Docker容器

Bash shell可以使用docker exec -it {CID} bash附加到已经运行的容器。 {CID}可以是完整的容器ID,截断的容器ID,甚至可以是所有当前运行的容器中容器ID的前几位。

因此,以下三个命令在我们的情况下是等效的:

使用完整的容器ID附加
> docker exec -it 02061ddf0a3d1b2806a1ee6e354f4064d9d2ff4d84d8c96c0273c8883917a92f bash
root@02061ddf0a3d:/#
使用截断的容器ID附加
> docker exec -it 02061ddf0a3d bash
root@02061ddf0a3d:/#

在这种情况下,仅指定0 ,因为这是唯一正在运行的容器。 如果正在运行的多个容器的起始编号为0 ,则需要使容器ID唯一的前几位数字。

请享用!

翻译自: https://www.javacodegeeks.com/2015/11/attach-shell-docker-container.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值