ad

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_2.4 访问运行状态容器

admin 134 2023-10-25

【摘要】 本书摘自《基于Kubernetes的容器云平台实战》一书中第2章,第4节,由陆平、左奇、付光和张晗等编著。

2.4 访问运行状态容器

如果要直接改变运行状态容器的标准输入输出流,或者在其中执行程序,可以使用如 下命令。

1.挂接运行状态容器标准流

docker container attach [OPTIONS]CONTAINER

将宿主机标准输入/标准输出流挂接到容器上,相当于切换到交互式运行。虽然支持多 终端对同一容器挂接,但若某窗口阻塞时,其他窗口也无法操作。

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_2.4 访问运行状态容器

--no-stdin 不挂接容器的STDIN。 --sig-proxy=false, 不转发终端信号。比

如在终端上输入Ctrl-C,只会退出 attach 状态,不会使容器运行终止。

2.在运行状态容器中执行命令

docker container exec [OPTIONS] CONTAINER COMMAND [ARG.. 】

命令须在容器中可访问且只能为可执行程序或者shell,不能是 shell命令串。

-d/--detach 以后台方式执行,结果不回显; -i/--interactive 以交互式执 行命令,回显结果。 -e/--env 为命令设置环境变量。 -t/--tty 会分配伪终端。 -- privileged 以特权方式执行命令。 -u/--user 以指定用户名或者UID 执行命令,参数 格式为[:]。 -w/--workdir 指定工作目录。

3.nsenter命令

只要进入Docker容器的命名空间中就可查看容器状态,在util-Linux 软件包2.23 以上 版本中包含的nsenter工具就可以实现此功能。命令格式为:

nsenter [options][...]

若不进入mount 命名空间,则待执行命令不必在容器文件视图中。

有 -t/--target 选项时,其他命名空间选项不必带有路径。 -m/--mount;-

u/--uts;-i/--ipc;-n/--net;-p/--pid;-U/--user 选项指定要进入的命名空间。 -

z/--follow-context 使用目标进程 SELinux 上下文。

-F/--no-fork 在执行命令之前不执行fork。 -w/--wd 和 -r/--root 指定工作目 录和根目录。 -S/--setuid 和 -G/--setgid 分别为命令执行设定UID 和GID。

获取容器进程ID 可用如下命令:

docker container inspect -f="{{.State.Pid}}"

2.5 访问容器内容

使用下面的命令可以从宿主机上操作容器文件视图中的内容。

1.复制容器内容

使用如下命令可在本地文件系统和容器文件视图之间复制文件或者目录内容。 拷出命令:

docker Cp [OPTIONS]CONTAINER:SRC PATH DEST PATH|-

拷入命令:

docker cp [OPTIONS]SRC PATH|- CONTAINER:DEST PATH

“- ”表示标准输入输出,目标路径的父目录需存在,以覆盖方式执行但不会用目录覆 盖同名文件。不能复制/proc、/sys、/dev 以及 tmpfs 下的文件。

--archive/-a 保存全部UID/GID。 --follow-link/-L 追溯源路径符号链接。

2.查看容器运行后更新内容

docker container diff CoNTAINER

该命令显示容器读写层内容,输出内容中行首字母表示更新类型: A (新增)、D (删除)、 C (更改)。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《认知计算与深度学习》_基于物联网云平台的智能应用_2.2 虚拟机和Docker容器的创建
下一篇:《给所有人的Python》_第四版_也是给你的一本知识宝典_2.3.2 字符串的连接
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×