linux s6 docker 集成参考

基于s6-overlay 工具

环境准备

  • Dockerfile
FROM ubuntu
ARG S6_OVERLAY_VERSION=3.0.0.2-2
 
RUN apt-get update && apt-get install -y nginx xz-utils
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
CMD ["/usr/sbin/nginx"]
 
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch-${S6_OVERLAY_VERSION}.tar.xz /tmp
RUN tar -C / -Jxpf /tmp/s6-overlay-noarch-${S6_OVERLAY_VERSION}.tar.xz
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-x86_64-${S6_OVERLAY_VERSION}.tar.xz /tmp
RUN tar -C / -Jxpf /tmp/s6-overlay-x86_64-${S6_OVERLAY_VERSION}.tar.xz
ENTRYPOINT ["/init"]
  • 构建&&使用
docker build -t dalongrong/s6-demoapp .
docker run -d -p 80:80 alongrong/s6-demoapp

s6 进程效果

  • 进入容器
docker exec -it <containerId> sh 
  • 进程效果

 

 

s6-overlay 支持的特性

  • 简单init 进程,需要服务进行初始化以及释放定义(比如任务,以及系统运行初始化)
  • 接管1号进程,规避僵尸进程的问题(容器僵尸进程很常见)
  • 多进程单容器(维护上更加方便)
  • 可以复用现有的基础镜像(centos,alpine,ubuntu)
  • 做为tar 文件提供简单
  • 开箱即用的日志轮转(基于了s6-log)

说明

s6-overlay 的功能还是很强大的,使用上也比较简单,值得使用,使用它可以解决不少容器运行的一些问题

参考资料

http://skarnet.org/software/s6-linux-init/
https://github.com/just-containers/s6-overlay

posted on 2022-02-27 21:17  荣锋亮  阅读(475)  评论(0编辑  收藏  举报

导航