Docker高级部署与调试全解析
1. 数据持久化中的用户权限问题
在容器启动时,卷会被挂载,脚本会在将命令传递给容器的原始运行器之前,将卷的用户和组更改为合适的用户和组,从而解决相关问题。在处理卷时,一定要注意用户权限,因为如果不小心,可能会导致可用性和安全问题。在开发服务和基础设施时,这类陷阱可能会导致从轻微麻烦到灾难性故障的各种问题。
2. 高级调试技术
2.1 附加到容器的进程空间
当容器使用如Alpine Linux这样的极简发行版运行,且要调试的进程所在容器缺乏基本调试工具时,默认情况下Docker会将所有容器隔离在各自的进程命名空间中,直接附加到容器调试的方法效果不佳。不过,Docker可以使用 docker run --pid "container:<name_or_id>" 标志将两个容器的进程命名空间连接起来,从而将调试工具容器直接附加到受影响的容器上。
示例代码如下:
# 启动一个NGINX容器
$ docker run -d --rm nginx
650a1baedb0c274cf91c086a9e697b630b2b60d3c3f94231c43984bed1073349
# 从一个新的/单独的容器中能看到什么?
$ docker run --rm \
ubuntu \
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 16
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



