os: ubuntu 12.04
1 安装
1 2 3 4 5 6 |
#安装依赖包 sudo apt-get install lxc wget bsdtar curl #安装lxc依赖的内核及扩展 sudo apt-get install linux-image-extra-3.2.0-38-virtual #重启以使用新内核 init 6 |
2 安装 docker
1 2 3 |
#解压后就一个二进制文件 wget http://get.docker.io/builds/$(uname -s)/$(uname -m)/docker-master.tgz tar -xf docker-master.tgz |
3 初始化
第一次运行的时候,会下载所需的文件
一个类似于linux系统的镜像被存储在/var/lib/docker/graph/27cf784147099545/layer(目录的编号可能会有不同)
1 2 |
cd docker-master sudo ./docker run -i -t base /bin/bash |
4 运行环境
以docker运行一个bash后,会发现
1 2 3 4 5 6 7 |
[root@ubuntu1:/var/lib/docker/graph/27cf784147099545]#ps -ef | grep bash ... root 4924 1601 0 19:57 pts/1 00:00:00 sudo ./docker run -i -t base /bin/bash root 4926 4924 0 19:57 pts/1 00:00:00 ./docker run -i -t base /bin/bash root 4947 4926 0 19:57 pts/1 00:00:00 lxc-start -n 8c9316ca2b54aaba0e60bee5c1abea6cf1bd0f38e341eef7defc565bc5bad772 -f /var/lib/docker/containers/8c9316ca2b54aaba0e60bee5c1abea6cf1bd0f38e341eef7defc565bc5bad772/config.lxc -- /sbin/init -g 10.0.3.1 -- /bin/bash root 4951 4947 0 19:57 pts/1 00:00:00 /bin/bash ... |
会将layer目录下的系统镜像复制到/var/lib/docker/containers/作为一个实例
在进程号为4951的bash里执行命令,会以/var/lib/docker/containers/8c9316ca2b54aaba0e60bee5c1abea6cf1bd0f38e341eef7defc565bc5bad772/rootfs作为根目录,进程和文件系统被隔离了,比如
1 2 3 4 5 6 7 8 9 10 11 |
root@8c9316ca2b54:/# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 02:57 ? 00:00:00 /bin/bash root 7 1 0 03:03 ? 00:00:00 ps -ef root@8c9316ca2b54:/# df -h df: cannot read table of mounted file systems: No such file or directory root@8c9316ca2b54:/# ls / bin dev home lib64 mnt proc run selinux sys usr boot etc lib media opt root sbin srv tmp var |
enjoy it!