Skip to content

docker.sh 是用 Shell 写的一个简易的 docker,麻雀虽小,五脏俱全,可用于学习 Docker 原理。

Notifications You must be signed in to change notification settings

pandengyang/docker.sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

docker.sh 是用 Shell 写的一个简易的 docker,支持以下功能:

  • uts namespace
  • mount namespace
  • pid namespace
  • network namespace
  • memory 资源限制
  • 联合加载
  • 卷目录

关于 docker.sh 的详细讲解,请阅读微信公众号 ScratchLab 文章《使用 Shell 脚本实现 Docker》、《使用 Shell 脚本实现 Docker(二)》:

微信搜一搜 ScratchLab

《使用 Shell 脚本实现 Docker》讲解了以下功能:

  • uts namespace
  • mount namespace
  • pid namespace
  • network namespace
  • memory 资源限制
  • 联合加载
  • 卷目录

《使用 Shell 脚本实现 Docker》讲解了以下功能:

  • network namespace
  • iptables

docker.sh 有两个分支,默认分支为 v1 分支,该分支适用于《使用 Shell 脚本实现 Docker》。v2 分支适用于《使用 Shell 脚本实现 Docker(二)》。切换分支的命令如下:

git checkout v1
git checkout v2

Run

# 制作镜像
mkdir images
cd images
sudo debootstrap --arch amd64 xenial ./ubuntu1604

# 运行容器
sudo ./docker.sh -c run -m 100M -C dreamland -I ubuntu1604 -V data1 -P /bin/bash -n host -n none

About

docker.sh 是用 Shell 写的一个简易的 docker,麻雀虽小,五脏俱全,可用于学习 Docker 原理。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages