ewe22 发表于 2015-2-10 08:11:02

在 CentOS 6.4(64位) 安装 docker.io

Docker.io 是轻量级的“容器引擎+映像仓库”,在LXC(linux轻量级容器)的基础上构建,可以运行任何应用程序。

docker.io的核心层由以下几个部分组成:

1、可执行程序,“/usr/bin/docker”

2、docker.io网站上有一系列创建好的操作系统和应用程序映像

3、AUFS(另一个统一文件系统)来实现文件系统的快照,文件变化,控制只读或读写的需求。

4、LXC(Linux轻量级容器)

5、Cgroups(各种资源和命名空间的管理)

在本文写作的时候,最新版本是0.5.3,但目前开发很活跃,一些功能和特性可能在新版本中会发生变化。

按下面的步骤安装docker.io:

0、安装CentOS6.x

1、因为selinux和LXC有冲突,所以需要禁用
# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted

2、配置Fedora EPEL 源
sudo yum install http://ftp.riken.jp/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm

3、配置hop5.in源
cd /etc/yum.repos.d
sudo wget http://www.hop5.in/yum/el6/hop5.repo

4、centos下安装docker-io
# yum install docker-io
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* epel: kartolo.sby.datautama.net.id
* extras: centos.excellmedia.net
* updates: centos.excellmedia.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package docker-io.x86_64 0:0.5.3-4.el6 will be installed
--> Processing Dependency: lxc >= 0.8.0 for package: docker-io-0.5.3-4.el6.x86_64
--> Processing Dependency: kernel-ml-aufs >= 3.10.5 for package: docker-io-0.5.3-4.el6.x86_64
--> Running transaction check
---> Package kernel-ml-aufs.x86_64 0:3.10.5-3.el6 will be installed
---> Package lxc.x86_64 0:0.8.0-3.el6 will be installed
--> Processing Dependency: liblxc.so.0()(64bit) for package: lxc-0.8.0-3.el6.x86_64
--> Running transaction check
---> Package lxc-libs.x86_64 0:0.8.0-3.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================
Package                   Arch            Version                  Repository       Size
============================================================================================
Installing:
docker-io               x86_64            0.5.3-4.el6            hop5            1.2 M
Installing for dependencies:
kernel-ml-aufs            x86_64            3.10.5-3.el6             hop5             33 M
lxc                     x86_64            0.8.0-3.el6            hop5             81 k
lxc-libs                  x86_64            0.8.0-3.el6            hop5             75 k

Transaction Summary
============================================================================================
Install       4 Package(s)

Total download size: 34 M
Installed size: 159 M
Is this ok : y
Downloading Packages:
(1/4): docker-io-0.5.3-4.el6.x86_64.rpm                              | 1.2 MB   00:03   
(2/4): kernel-ml-aufs-3.10.5-3.el6.x86_64.rpm                        |33 MB   00:33   
(3/4): lxc-0.8.0-3.el6.x86_64.rpm                                    |81 kB   00:00   
(4/4): lxc-libs-0.8.0-3.el6.x86_64.rpm                               |75 kB   00:00   
--------------------------------------------------------------------------------------------
Total                                                       896 kB/s |34 MB   00:39   
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : lxc-libs-0.8.0-3.el6.x86_64                                              1/4
Installing : lxc-0.8.0-3.el6.x86_64                                                   2/4
Installing : kernel-ml-aufs-3.10.5-3.el6.x86_64                                       3/4
Installing : docker-io-0.5.3-4.el6.x86_64                                             4/4
Verifying: kernel-ml-aufs-3.10.5-3.el6.x86_64                                       1/4
Verifying: lxc-0.8.0-3.el6.x86_64                                                   2/4
Verifying: lxc-libs-0.8.0-3.el6.x86_64                                              3/4
Verifying: docker-io-0.5.3-4.el6.x86_64                                             4/4

Installed:
docker-io.x86_64 0:0.5.3-4.el6                                                            

Dependency Installed:
kernel-ml-aufs.x86_64 0:3.10.5-3.el6               lxc.x86_64 0:0.8.0-3.el6            
lxc-libs.x86_64 0:0.8.0-3.el6                     

Complete!
#



5、检查安装情况
# docker -h
Usage of docker:
-D=false: Debug mode
-H=: tcp://host:port to bind/connect to or unix://path/to/socket to use
-api-enable-cors=false: Enable CORS requests in the remote api.
-b="": Attach containers to a pre-existing network bridge. Use 'none' to disable container networking
-d=false: Daemon mode
-dns="": Set custom dns servers
-g="/var/lib/docker": Path to graph storage base dir.
-p="/var/run/docker.pid": File containing process PID
-r=false: Restart previously running containers



6、要想docker正常运行还需要在/etc/fstab里增加cgroup文件系统
echo "none /sys/fs/cgroupcgroupdefaults 0 0" >> /etc/fstab
mount /sys/fs/cgroup

只有重新启动才能挂载/sys/fs/cgroup(因为当前运行的内核不支持cgroup),所以上面挂载的命令也可以不执行,但系统需要重新启动。

相关阅读:

Docker的搭建Gitlab CI指南

CentOS 6.5下使用docker 容器

基于Web的Docker 管理工具 Shipyard


页: [1]
查看完整版本: 在 CentOS 6.4(64位) 安装 docker.io