docker安装neo4j之后,发现了一些不一样的点,所以学习一下

一、ps -ef,发现进程信息是/sbin/tini -g -- /docker-entrypoint.sh neo4j,那么tini是什么玩意儿呢

照样查了几篇文章,总结一下就是操作系统需要init进程来收割僵尸进程,而之前一般情况下,docker里都不运行init进程,只运行应用进程,应用进程是不会去收割僵尸进程的,于是会造成资源泄漏。但是如果运行完整的init进程,又会造成胖容器的问题。于是tini应运而生,简而言之他就是一个精简版的init。

 

二、之后进入容器内部执行命令

/bin/sh /docker-entrypoint.sh dump-config

提示/docker-entrypoint.sh: line 43: syntax error: unexpected redirection

查了几篇文章,了解到sh说起来只是一个规范,他有bourne shell、bourne again shell、tcsh、korn shell、ash、dash等多种实现.。而/bin/sh只是一个链接,指向操作系统里默认的实现。于是ls -l /bin/sh

/bin/sh -> /bin/busybox,原来是busybox,他是一个主要用于嵌入式系统的精简的linux工具集,他的默认shell是ash

而docker-entrypoint.sh的she-bang是#!/bin/bash -eu,语法并不能完全兼容,所以抛错,于是改为

/bin/bash /docker-entrypoint.sh dump-config

 

三、想了解下这个操作系统是什么版本的呢,为啥工具集是busybox呢,之前都没见过的。

       cat /proc/version,发现操作系统版本是Linux version 4.9.184-linuxkit (root@a8c33e955a82) (gcc version 8.3.0 (Alpine 8.3.0) ),Alpine又是什么玩意儿呢。

       打开官网一看,

                                               Small. Simple. Secure.
Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.

这介绍写得好啊,非常明白,最显著的优点就是small了,镜像大小只有5M不到,跟其他操作系统比简直就是数量级的差别啊,小的好处很多,镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值