Bocker Shell 实现的 Docker

程序名称:Bocker

授权协议: GPL

操作系统: Linux

开发语言: SHELL

Bocker 介绍

Bocker 是一个用大约 100 行代码实现的 Docker。

依赖:

  • btrfs-progs

  • curl

  • iproute2

  • iptables

  • libcgroup-tools

  • util-linux >= 2.25.2

  • coreutils >= 7.5

基本使用方法:

$ bocker pull centos 7
######################################################################## 100.0%
######################################################################## 100.0%
######################################################################## 100.0%
Created: img_42150

$ bocker images
IMAGE_ID        SOURCE
img_42150       centos:7

$ bocker run img_42150 cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

$ bocker ps
CONTAINER_ID       COMMAND
ps_42045           cat /etc/centos-release

$ bocker logs ps_42045
CentOS Linux release 7.1.1503 (Core)

$ bocker rm ps_42045
Removed: ps_42045

$ bocker run img_42150 which wget
which: no wget in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

$ bocker run img_42150 yum install -y wget
Installing : wget-1.14-10.el7_0.1.x86_64                                  1/1
Verifying  : wget-1.14-10.el7_0.1.x86_64                                  1/1
Installed  : wget.x86_64 0:1.14-10.el7_0.1
Complete!

$ bocker ps
CONTAINER_ID       COMMAND
ps_42018           yum install -y wget
ps_42182           which wget

$ bocker commit ps_42018 img_42150
Removed: img_42150
Created: img_42150

$ bocker run img_42150 which wget
/usr/bin/wget

$ bocker run img_42150 cat /proc/1/cgroup
...
4:memory:/ps_42152
3:cpuacct,cpu:/ps_42152

$ cat /sys/fs/cgroup/cpu/ps_42152/cpu.shares
512

$ cat /sys/fs/cgroup/memory/ps_42152/memory.limit_in_bytes
512000000

$ BOCKER_CPU_SHARE=1024 \
    BOCKER_MEM_LIMIT=1024 \
    bocker run img_42150 cat /proc/1/cgroup
...
4:memory:/ps_42188
3:cpuacct,cpu:/ps_42188

$ cat /sys/fs/cgroup/cpu/ps_42188/cpu.shares
1024

$ cat /sys/fs/cgroup/memory/ps_42188/memory.limit_in_bytes
1024000000

当前实现的功能:

  • docker build †

  • docker pull

  • docker images

  • docker ps

  • docker run

  • docker exec

  • docker logs

  • docker commit

  • docker rm / docker rmi

  • Networking

  • Quota Support / CGroups

Bocker 官网

https://github.com/p8952/bocker

相关编程语言

Cyclone是一个打造容器工作流的云原生持续集成持续发...
Kui Shell 为构建云原生应用程序提供了新的开发经验...
Eclipse MicroProfile 是一个 Java 微服务开发的基础...
Kabanero 构建在 Knative、Istio 与 Tekton 之上,提...
Antrea 是一个 Kubernetes 网络解决方案,旨在实现 ...
Linkerd 是一个提供弹性云端原生应用服务网格(serv...