开发者社区> 问答> 正文

浅谈Docker第二期

趁着国庆放假时间比较充裕,把之前在阿里云上的Docker实践说一下,从Docker的安装到最后正常运行经历了一些波折,以下是安装步骤。
1) 选择Ubuntu 14.04 64位镜像,uname后发现内核是3.13.0-32-generic,因此可以很好支持docker。
2) 安装docker.io

apt-get update
apt-get install docker.io

3) 运行docker daemon
service docker.io start

    ps后发现进程没起来,奇怪,什么问题呢?查了日志/var/log/upstart/docker.io.log:
        [7bee03ac] +job init_networkdriver()
        [7bee03ac.init_networkdriver()] creating new bridge for docker0
            Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
        [7bee03ac] -job init_networkdriver() = ERR (1)
    问题找到,原来是无法为docker0分配IP地址,于是运行“route -n“,发现以下路由条目都被占了:
       10.0.0.0,172.16.0.0 ,192.168.0.0
    docker启动时会在宿主机器上创建一个名为docker0的虚拟网络接口,它会从RFC1918定义的私有地址中随机选择一个主机不用的地址和子网掩码,并将它分配给docker0。
所以,尝试删除了172.16.0.0的路由条目:
route del -net 172.16.0.0 netmask 255.240.0.0

    再次启动docker,成功了:
service docker.io start

4) 尝试拉一些image:
docker pull ubuntu:14.04

    这个操作会到docker官方registry去拉image,速度相当的慢,一个image花了超过20分钟下载到本地。
5) 成功下拉后运行docker images看下:
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              14.04               c3d5614fecc4        3 days ago          194.9 MB
6) 运行容器试一下效果:
docker run -i -t ubuntu:14.04 echo "Hello World!"
Hello World!
docker ps -lCONTAINER ID        IMAGE               COMMAND               CREATED             STATUS                      PORTS               NAMES
f79bc34a30cd        ubuntu:14.04        echo 'Hello World!'   11 seconds ago      Exited (0) 10 seconds ago                       sad_mclean  
    bravo,安装配置成功!

比较遗憾的是docker官方registry在美国,获取镜像花的时间太长,而且说不准什么时候会被“墙”了(以前发生过)。在此衷心希望阿里云能出个docker registry方便我们下拉镜像。

展开
收起
凝凝王君 2014-10-01 22:34:25 20045 0
13 条回答
写回答
取消 提交回答
  • Re浅谈Docker第二期
    2015-01-02 22:20:09
    赞同 展开评论 打赏
  • 不明觉厉
    2014-12-20 10:26:05
    赞同 展开评论 打赏
  • Re浅谈Docker第二期
    2014-12-06 21:33:06
    赞同 展开评论 打赏
  • 2014-11-06 04:11:36
    赞同 展开评论 打赏
  • Re浅谈Docker第二期
    我启动命令时遇到了下面的错误:

    docker -d -H unix:///var/run/docker.sock
    2014/11/05 16:22:42 Error creating bridge: ip failed: ip link add docker0 type bridge (output: )

    请教下
    2014-11-05 16:23:48
    赞同 展开评论 打赏
  • Re浅谈Docker第二期
    我认为阿里云想要支持docker的话,docker registry镜像是必须要有的。

    -------------------------

    Re浅谈Docker第二期
    我认为阿里云想要支持docker的话,docker registry镜像是必须要有的。

    -------------------------

    Re浅谈Docker第二期
    我认为阿里云想要支持docker的话,docker registry镜像是必须要有的。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。

    -------------------------

    Re浅谈Docker第二期
    ubuntu 3.8内核以上的版本都内置了aufs。
    2014-11-03 10:46:38
    赞同 展开评论 打赏
  • Re浅谈Docker第二期
    我来灌个水。。。
    2014-10-28 17:20:55
    赞同 展开评论 打赏
  • 回6楼cloudfans的帖子
    那你当前使用的3.13.0-32-generic default情况下aufs已经被集成到kernel了吗?还是你自己重新编译了ECS的kernel使其支持aufs?
    2014-10-09 17:44:18
    赞同 展开评论 打赏
  • Re浅谈Docker第二期
    devicemapper还有metadata的容量限制,但我在阿里云上跑的docker后端存储用的是aufs,看下面输出:

    docker info
    Containers: 0
    Images: 0
    Storage Driver: aufs
    Root Dir: /var/lib/docker/aufs
    Dirs: 0
    Execution Driver: native-0.2
    Kernel Version: 3.13.0-32-generic
    WARNING: No swap limit support


    在我本地的coreos上是devicemapper。

    -------------------------

    回6楼cloudfans的帖子
    ubuntu 3.8内核以上的版本都内置了aufs。
    2014-10-09 15:40:44
    赞同 展开评论 打赏
  • Re浅谈Docker第二期
    亲,在你linux环境下,docker默认的storage driver是device mapper吧(docker info查看storage driver),device mapper 会对单个container的容量限制到10G以内、对总的container容量限制到100G内,会block大型的软件的开发。你应该申请阿里云kernel支持aufs才能打破这个限制
    2014-10-09 14:42:13
    赞同 展开评论 打赏
  • Re浅谈Docker第二期
    我认为阿里云想要支持docker的话,docker registry镜像是必须要有的。
    2014-10-09 12:18:50
    赞同 展开评论 打赏
  • 嗯,官方也会关注大家的想法,感谢楼主分享
    2014-10-02 22:31:59
    赞同 展开评论 打赏
  • 2014-10-02 09:11:55
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Docker之道 立即下载
Docker之道 立即下载
2017龙渊docker应用实践 立即下载