最近一段时间弄了下Dockerfile,实践中也发现了不少问题,总结如下:

1. Java环境变量不生效的问题:

启动容器不同于系统完整启动流程,当容器运行后不会执行source /etc/profile命令,即使在/etc/profile添加环境变量也不会生效,可以使用ENV参数在Dockerfile中定义,也可以使用entrypoint在脚本里执行添加环境变量的命令。

Dockerfile不是she...

Continue reading >>

使用Dockerfile构建的容器, 无法看到非root用户运行程序的PID,如下图所示:

image.png

百度上说是netstat的bug,看起来却像是权限问题,最后Google找到了,docker为了容器的安全,容器中的root权限有限制,与宿主机上root权限是不一样的,启动容器加上--cap-add=SYS_PTRACE,即可看到PID,官网上也有相关解释。

Runtime privilege and Lin...

Continue reading >>