分类: LINUX
2016-05-15 16:02:11
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