7 Star 11 Fork 1

binave / tiny4containerd

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

Tiny4Containerd

Tiny4Containerd is a lightweight Linux distribution made specifically to run containers on bare metal.
It runs completely from RAM.

Tiny4Containerd 是一个轻量级,运行于内存中的 linux,用于在裸机上快速部署容器环境。


Licensing

tiny4containerd is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

import:


If you want to SSH into the machine, the credentials are:
如果你需要通过 SSH 登陆设备,初始账号密码如下。

user: tc
pass: tcuser

Install on any device

To 'install' the ISO onto an SD card, USB-Stick or even empty hard disk, you can use dd if=tiny4containerd.iso of=/dev/sdX. This will create the small boot partition, and install an MBR.
如果想要将 ISO 文件安装到 SD 卡或其他 USB 接口的空存储介质,可以 使用 dd if=tiny4containerd.iso of=/dev/sdX 命令。

If make sure the disk is empty for real, initialise to md array, create a logical volume, format it.
如果启动中检测到一个空硬盘,会自动初始化成 RAID,并在上面建立 LVM2 分区。
If there is a logical volume name lv_data and lv_log, mount it.
如果启动中检测到一个逻辑卷名为 lv_datalv_log,会对其进行自动挂载。

卷标为 lv_log 的逻辑卷会挂载到 /log 目录上。
逻辑卷 lv_data 中的以下目录会被挂载到根目录上:

/home
/opt
/tmp
/volume1

如果没有相应目录,会自动建立并挂载。
注意:没有对 SSD (固态硬盘)进行特别处理。
相同型号 SSD 组成的 RAID ,可能出现寿命同时用尽的情况,会增加数据永久丢失的风险。


FAQ

Q: 如何进行自定义配置

A:

卷标为 lv_data 的逻辑卷,存在多个配置文件 依执行顺序:

路径 说明 样例 备注
/opt/tiny/etc/passwd 密码配置 root:$1$AgCGptrX$hL7QB536iJ9KKjO1KtfVA. 使用 openssl passwd -1 [password] 生成加密密码
/opt/tiny/etc/if.cfg 静态 ip 配置 eth0 192.168.1.123 192.168.1.255 255.255.255.0
/opt/tiny/etc/init.d/[SK]*.sh 启动、关机脚本 S01_ftpd.sh K20_ftpd.sh S*.sh 在服务启动前执行
K*.sh 设备关机前执行
/opt/tiny/etc/env 环境变量配置 EXTRA_ARGS="--registry-mirror=https://xxx.mirror.aliyuncs.com"
/opt/tiny/etc/rc.local 启动最后阶段执行 需要赋予可执行权限
isolinux.cfg 启动参数和环境变量配置 需要编辑源代码中的配置文件


Q: 如果磁盘空间不足怎么办?

A:

使用 mdisk 命令的 expand 子命令进行分区扩容。需要在执行前安装好新的存储设备。
isolinux.cfg 文件的 APPEND 字符后插入 noraid 字符,会忽略所有的磁盘阵列,仅将一个新硬盘加入现有的 LVM 中。
不使用 noraid 的情况下:为了保证分区对齐,expand 命令要求空闲硬盘能够组成的新阵列,必须与原有磁盘 RAID 等级相同,否则会失败。
noraid 是为了支持 硬件 RAID 卡 而设计的。通常情况下建议使用磁盘阵列以降低数据丢失的风险。


Q: 使用 RAID 模式时必须使用多块硬盘吗?

A:

可以使用单块硬盘,单块硬盘会初始化成 RAID 1,阵列里会留有一个空位。
你可以在使用一段时间之后,加入一块相同容量的空硬盘。它会在系统启动(或使用 mdisk rebuild 命令)时自动修补之前的 RAID。
Tiny4Containerd 将只支持 RAID 1RAID 5,且不支持阵列嵌套。


Q: 如何让新加入的硬盘用于扩容,而不是在重启操作系统时进行 RAID 修补。

A:

安装的新硬盘只有在使用的 RAID 不完整,并且经过装载步骤的情况下才会用于 RAID 修补。
isolinux.cfg 文件的 APPEND 字符后插入 noautorebuild 字符,会在装载时跳过修补,然后登陆后使用 mdisk expand 命令来手动进行扩容。
如果使用热插拔硬盘,只要避免重启操作系统,执行 mdisk expand 命令即可。


Q: 新增命令有哪些环境变量?

A:

DockerfileENV 配置:

环境变量名称 默认值 说明
OUTPUT_PATH / 默认输出路径(容器中)
TIMEOUT_SEC 600 超时时间(秒)
TIMELAG_SEC 5 循环间隔(秒)
TMP /tmp 临时目录
KERNEL_MAJOR_VERSION 4.9 内核版本

isolinux.cfg 文件的 APPEND 字符后加入:(键值对使用 = 连接)

名称 默认值 说明 所属命令 备注
nodisk 忽略所有硬盘 mdisk init
noraid 忽略所有 RAID 设备和相关逻辑 mdisk init
noautorebuild 跳过 RAID 修补 mdisk init
BYTES_PER_INODE 8192 修改文件系统存储文件数量上限 mdisk 不建议修改
DISK_PREFIX sd 磁盘前缀名称 mdisk 需要根据硬件进行调整
LOG_EXTENTS_PERCENT 15 lv_log 分区占用百分比 mdisk
BLOCK_SIZE 4 区块大小 mdisk 不建议修改
CHUNK 128 RAID 块大小 mdisk 不建议修改

公用配置 /opt/tiny/etc/env

环境变量名称 默认值 说明 所属命令 备注
CROND_LOGLEVEL 8 crond 日志等级,0 为最详细 crond
PW_CONFIG /opt/tiny/etc/passwd 密码配置 pw
IF_CONFIG /opt/tiny/etc/if.cfg 静态 ip 配置 ifinit
IF_PREFIX eth 网卡前缀名称 ifinit, containerd 需要根据硬件进行调整
CONTAINERD_ULIMITS 1048576 进程数上限 containerd
CONTAINERD_HOST -H tcp://0.0.0.0:2375 监听 hosts containerd
CONTAINERD_USER tc 默认用户名 containerd 如果修改需要自己建立用户
ORG tinycorelinux 证书组织名称 containerd
SERVER_ORG tinycorelinux 服务端证书组织名称 containerd
CA_ORG tinycorelinuxCA 根证书名称 containerd
CERT_DAYS 365 证书有效期 containerd
WAIT_LIMIT 20 重试次数极限 containerd
SSHD_PORT 22 监听端口 sshd


Q: 可以自定义容器启动顺序吗?

A:

可以建立 ~/.container_start 配置文件。
同一行的多个 container id 会被同时启动。
不同行之间可以插入 sleep [sec] 用以延迟启动时机。
! 标记的行,后方的 container id 将不会被启动(每行仅可以使用一个 !)。
不在配置文件中的 container id 会在最后被同时启动。

e.g.

!0123456789ab cdef01234567  # 不启动
89abcdef0123
sleep 2                     # 间隔 2 秒
456789abcdef ba9876543210

Q: 如何加快操作日志记录频率。

A:

root 用户下,使用 crontab -e 编辑定时任务,加入以下命令:

*/5 * * * * /usr/local/sbin/wtmp

在登陆触发日志记录操作以外,增加每 5 分钟记录一次的操作。

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2018 bin jin Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

Tiny4Containerd is a lightweight Linux distribution made specifically to run containers on bare metal. It runs completely from RAM. 展开 收起
Shell 等 2 种语言
Apache-2.0
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Shell
1
https://gitee.com/binave/tiny4containerd.git
git@gitee.com:binave/tiny4containerd.git
binave
tiny4containerd
tiny4containerd
master

搜索帮助

14c37bed 8189591 565d56ea 8189591