docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。
Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。
值得关注的特性:
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次***互shell。
一、centos编译安装docker
1、升级内核到4.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
yum install -y make gcc gcc-c++ openssl openssl--devel ncurses ncurses-devel bc
wget http://mirrors.dwhd.org/Kernel/v4.x/linux-4.3.tar.xz
tar xf linux-4.3.tar.xz -C /usr/src/
cd /usr/src/linux-4.3/
cp /boot/config-`uname -r` .config
sh -c 'yes "" | make oldconfig'
# make menuconfig ###自定义需要编译的选项
# scripts/kconfig/mconf Kconfig ###自定义需要编译的选项
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` bzImage
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` modules
make -j `awk '/processor/{a++}END{print a}' /proc/cpuinfo` modules_install
make install
# make mrproper ###编译出错重新编译需要做清除处理
sed -ri 's/(default=).*/\10/' /boot/grub/grub.conf
reboot
uname -a
2、关闭SELinux
1
2
sed -ri 's/^#?((\s+)?SELINUX(TYPE)?.*)/#\1/;$a SELINUX=disabled\nSELINUXTYPE=targeted' /etc/sysconfig/selinux
/usr/sbin/setenforce 0
3、编译高版本git
1
2
3
4
5
6
7
8
9
10
11
12
yum -y remove git
yum -y install zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel
wget http://mirrors.dwhd.org/Git/git-2.6.3.tar.xz
tar xf git-2.6.3.tar.xz
cd git-2.6.3
./configure --prefix=/usr/local
make -j $(awk '/processor/{i++}END{print i}' /proc/cpuinfo) && make install && cd ..
echo "PATH=/usr/local/bin:\$PATH" >/etc/profile.d/git.sh
. /etc/profile.d/git.sh
which git
/usr/local/bin/git
git --version
4、检测iptables版本 xz版本和ps命令,iptables≥1.4,xz≥4.9
1
2
3
which ps
iptables -V
xz -V
5、安装cgroup
1
yum install -y libcgroup libcgroup-devel libcgroup-pam
6、安装go
二、YUM安装docker在CentOS7系统上
centos7.x安装docker
# 加入开机启动
另外一种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
yum clean all
cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
yum makecache
yum install -y docker-engine
systemctl start docker.service
systemctl enable docker.service
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'
systemctl status docker.service
docker run hello-world
Ubuntu安装
1、更新Ubuntu内核
使用如下命令行更新内核至3.8.0-25
1
2
sudo apt-get install linux-image-3.8.0-25-generic
sudo apt-get install linux-headers-3.8.0-25-generic
完成后重启电脑,通过命令 “uname -r” 来查看内核是否成功更新。
2、安装lxc-docker
1
2
3
4
5
sudo apt-get install software-properties-common #增加 add-apt-repository 命令
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:dotcloud/lxc-docker #增加一个ppa源,如:ppa:user/ppa-name
sudo apt-get update #更新系统
sudo apt-get install lxc-docker
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com