Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325193
  • 博文数量: 97
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 811
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-25 19:22
文章分类

全部博文(97)

文章存档

2021年(1)

2020年(18)

2019年(14)

2018年(29)

2017年(16)

2016年(19)

我的朋友

分类: LINUX

2016-05-15 16:02:11


vm实现系统级别的隔离
docker实现程序级别的隔离,相比vm更加轻量级。

感觉能把资源隔离得越小越细,就能实现节省更多资源,更加牛。
docker的实现:
    容器--->LXC
    权限的控制和隔离--->namespaces
    资源的配置---> cgroups
    文件系统--->aufs
--------------------------------------------------------

利用docker的好处,不需要像以前那样有繁复的安装过程,因为其包含了运行环境和执行程序,并可以实现跨平台和主机使用。
比如,如果需要迁移应用,直接把整个容器进行迁移,不用再担心系统运行环境的不一造成的各种问题。

给一个网络上关于docker优点的标准化答案:

1)标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;

2)节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级;

3)方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;

4)节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级;

5)方便持续集成,通过与代码进行关联使持续集成非常方便;

6)可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。


=======================================
在ubuntu上安装docker engine
官方指导:
1.安装要求 内核3.10以上,64位

2.更新apt源
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

根据不同版本在/etc/apt/sources.list.d/docker里添加以下内容
    ubuntu precise 12.04(LTS)
        deb ubuntu-precise main
    ubuntu trusty 14.04(LTS)

    deb ubuntu-trusty main
    ubuntu wily 15.10
        deb ubuntu-wily main
    ubuntu xenial 16.04(LTS)
        deb ubuntu-xenial main
$ sudo apt-get purge lxc-docker清楚就容器
$ sudo apt-cache policy docker-engine

3.安装Linux-image-extra
$ sudo apt-get install linux-image-extra-$(uname -r)
如果是ubuntu 14.04或12.04需要安装apparmor
$ sudo apt-get install apparmor

4.安装docker
$ sudo apt-get install docker-engine
$ sudo service docker start
$ sudo docker run hello-world

5.若不想每次运行docker都加sudo,创建docker组把当前用户放入该组
$ sudo groupadd docker
$ sudo usermod -aG docker ubuntu
$ 登出当前用户并重新登录
$ docker run hello-world

6.把docker加入启动项
$ sudo systemctl enable docker

到此docker已经安装完成。

+++++++++++++++++++++++++++++++++++++++

一些可能遇到的问题
1.当运行docker时有一下报错
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
    $ vi /etc/default/grub 编辑grub更改以下内容
            GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
    $ sudo update-grub
    $ reboot

2.如果使用ufw防火墙,需要enable ufw forwarding,开放2375端口
$ sudo vi /etc/default/ufw
        DEFAULT_FORWARD_POLICY="ACCEPT"
$ sudo ufw reload
$ sudo ufw allow 2375/tcp

3.当有如下DNS报错时
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
$ vi /etc/default/docker
    DOCKER_OPTS="--dns 8.8.8.8 --dns 192.168.1.1"
$ sudo restart docker

4.更新docker
$ sudo apt-get upgrade docker-engine

5.卸载docker
$ sudo apt-get purge docker-engine
$ sudo apt-get autoremove --purge docker-engine  删除docker以及无用依赖包
$ rm -rf /var/lib/docker

阅读(1212) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~