利用docker exec命令远程在容器中运行bash shell之后,如何继续向shell里添加其他命令?

现在好多docker ui可以远程调用docker的rest接口操作容器,运用exec可以在运行容器的内部执行命令,假设我的以如下方式调用exec接口:
POST hostid:port/containers/{id}/exec
参数为:
AttachStderr: true
AttachStdin: true
AttachStdout: true
Cmd: ["bash"]
Tty: true
id: "xxxxxx"
成功创建exec实例后,应如何进行后续操作以向bash shell中添加命令,如ls等?
望路过的大佬不吝赐教~

阅读 6.3k
2 个回答

我不太明白 容器内添加命令和前面的rpc接口有什么联系。

如果我要添加如 ls 这种命令,我会从HOST中找到这个可执行程序,比如我的是 /usr/lib/klibc/ls

然后把这个文件 复制到容器的 rootfs中, 复制方法搜索“容器与主机文件共享”

添加命令是什么意思?
一般你在宿主机上直接执行docker exec -it 容器名/容器ID bash就能拿到命令行了,或者如果你的基础镜像是alpine的话,把bash换成sh也可以拿到。bash本身就集成了常见常用的命令,一般不需要额外添加。或者说你想额外添加的话,应该去用包管理器。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题