小菜鸟
分类: 虚拟化
2016-03-14 17:36:05
2.1 安装 Docker 的先决条件
运行 64 位 CPU 架构的计算机,Docker 目前不支持 32 位 CPU
运行 Linux 3.8 或者更高版本内核。
内核必须支持一种适合的存储驱动 (storage driver),例如 Device Mapper, AUFS
内核必须支持并开启 cgroup 和命名空间 (namespace) 功能
2.2 Ubuntu 中安装 Docker
官方支持版本:
Ubuntu Trusty 14.04 LTS 64 位
Ubuntu Precise 12.04 LTS 64 位
但是并不意味着其他的Ubuntu或者Debian版本就不能安装Docker,只要有合适的内核和
Docker所必须的支持即可。
2.2.1 检查前提条件
# 我的环境是 windows 7 旗舰版 64 位, 6GB 内存。
# 安装了 Vmware 虚拟机,里面安装了一个 Ubuntu 15.10
[#1#cloudsoar@cloudsoar-virtual-machine ~]$uname -a
Linux cloudsoar-virtual-machine 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
可以看到我的内核是 3.19.0 x86_64 的内核,因此不需要升级内核
2 查看Device Mapper
任何 Ubuntu 12.04 或者更高版本都已经安装了Device Mapper,如下命令可以确认是否安装
[#2#cloudsoar@cloudsoar-virtual-machine ~]$ls -l /sys/class/misc/device-mapper lrwxrwxrwx 1 root root 0 3月 14 15:26 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
2.2.2 安装 Docker
首先需要添加 Docker 的 APT 仓库,添加之前需要确认已经安装了curl命令
[#3#cloudsoar@cloudsoar-virtual-machine ~]$whereis curl curl: /usr/bin/curl /usr/share/man/man1/curl.1.gz [#4#cloudsoar@cloudsoar-virtual-machine ~]$sudo sh -c "echo deb docker main > /etc/apt/sources.list.d/docker.list"
如果没安装,使用 apt-get –y install curl 命令安装
接下来添加 Docker 仓库的 GPG 密钥
[#7#cloudsoar@cloudsoar-virtual-machine ~]$curl -s https://get.docker.io/gpg | sudo apt-key add - gpg: 找不到有效的 OpenPGP 数据。
我的虚拟机是今天安装的新的。这里提示报错,找不到OpenPGP数据。
网上差找到方法:
[#10#cloudsoar@cloudsoar-virtual-machine ~]$sudo curl -s https://get.docker.io/gpg | sudo apt-key add - gpg: 找不到有效的 OpenPGP 数据。 [#11#cloudsoar@cloudsoar-virtual-machine ~]$gpg --keyserver pgpkeys.mit.edu --recv-key 9AA38DCD55BE302B gpg: 已创建目录‘/home/cloudsoar/.gnupg’ gpg: 新的配置文件‘/home/cloudsoar/.gnupg/gpg.conf’已建立 gpg: 警告:在‘/home/cloudsoar/.gnupg/gpg.conf’里的选项于此次运行期间未被使用 gpg: 钥匙环‘/home/cloudsoar/.gnupg/secring.gpg’已建立 gpg: 钥匙环‘/home/cloudsoar/.gnupg/pubring.gpg’已建立 gpg: 下载密钥‘55BE302B’,从 hkp 服务器 pgpkeys.mit.edu gpg: /home/cloudsoar/.gnupg/trustdb.gpg:建立了信任度数据库 gpg: 密钥 55BE302B:公钥“Debian Archive Automatic Signing Key (5.0/lenny) ”已导入 gpg: 没有找到任何绝对信任的密钥 gpg: 合计被处理的数量:1 gpg: 已导入:1 (RSA: 1) [#12#cloudsoar@cloudsoar-virtual-machine ~]$gpg -a --export 9AA38DCD55BE302B | sudo apt-key add - OK
完成后更新源,sudo apt-get update
此时,我用虚拟机创建了一个快照备份,以便以后有问题需要恢复的时候方便使用。
下面开始安装Docker
[#14#cloudsoar@cloudsoar-virtual-machine ~]$sudo apt-get install lxc-docker
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会安装下列额外的软件包:
aufs-tools cgroupfs-mount git git-man liberror-perl lxc-docker-1.9.1
建议安装的软件包:
git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch
git-cvs git-mediawiki git-svn
下列【新】软件包将被安装:
aufs-tools cgroupfs-mount git git-man liberror-perl lxc-docker lxc-docker-1.9.1
升级了 0 个软件包,新安装了 7 个软件包,要卸载 0 个软件包,有 322 个软件包未被升级。
需要下载 12.1 MB 的软件包。
解压缩后会消耗掉 53.8 MB 的额外空间。
您希望继续执行吗? [Y/n] y
整个下载过程可能有点慢,我这里是电信100Mb的光纤,下载速度是10kb/s左右
安装完毕后,使用 docker info 查看是否安装并运行了
[#15#cloudsoar@cloudsoar-virtual-machine ~]$sudo docker info Containers: 0 Images: 0 Server Version: 1.9.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 0 Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.19.0-15-generic Operating System: Ubuntu 15.04 CPUs: 1 Total Memory: 2.43 GiB Name: cloudsoar-virtual-machine ID: RL5D:42DH:XMAC:GDQY:VWPJ:3YGM:UHQK:K3QD:USCH:TEGA:32PF:HUNB
2.2.3 Docker 和 UFW
ubuntu中,如果使用 UFW (Uncomplicated Firewall) 还需要启动 UFW 的数据包转发
Docker才能正常运行,需要对 /etc/default/uwf 文件做出一点改动
将 DEFAULT_FORWARD_POLICY="DROP" 改为 “ACCEPT”, 保存从新加载即可.
2.9 Docker 守护进程
当 Docker 安装完毕后, 默认会立即启动 Docker 守护进程. 监听 /var/run/docker.sock 这
个 Unix 套接字文件来获取来自客户端的 Docker 请求. 如果系统存在名为 docker 的用户组
的话,Docker 会将此套接字文件的所有者设置为 docker 用户组,这样 docker 用户组所
有用户都可以直接运行 Docker 不用使用 sudo。
2.9.1 配置 Docker 守护进程
[#19#cloudsoar@cloudsoar-virtual-machine ~]$sudo /usr/bin/docker -d -H tcp://0.0.0.0:2375
2.9.2 检查守护进程是否在运行
[#2#cloudsoar@cloudsoar-virtual-machine ~]$sudo status docker [sudo] password for cloudsoar: status: 无法连接到 Upstart: Failed to connect to socket /com/ubuntu/upstart: 拒绝连接我这里报错。
今天暂时还未解决,有待进一步查找资料。