Shell 实现的 Docker Bocker

GPL
SHELL 查看源码»
Linux
2015-09-19
红薯

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


的码云指数为
超过 的项目
加载中

评论(1)

rootchina
rootchina
reinvent wheels? #Bocker#

暂无资讯

暂无问答

Perl多线程目录扫描

纯属手贱写着玩。。。这几天心情比较郁闷。 所以动手写了下。 #!/usr/bin/perl use HTTP::Request; use LWP::UserAgent; use Getopt::Long; use threads; use Thread::Semaphore; use...

2014/02/13 10:04
22
0
ActiveMQ学习(三)

启动ActiveMQ的broker的几种方式 broker是什么? 这是一个很重要的概念,broker实际上就是ActiveMQ的服务器,就是核心。 1.命令方式启动 在Linux上用命令启动broker:到bin下执行./activemq ...

2018/11/10 15:51
1
0
UCloud 分布式消息队列 UMQ 设计与架构演进

本文整理自广州 OSC 源创会上肖丁老师的演讲。消息队列普遍存在于各大业务系统中,起到业务模块解耦、异步通信等作用。作为一个产品化的队列服务,UMQ 需要更多的考虑高性能、高可用,来保证...

2016/12/07 00:56
2.5K
5

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部