docker 1-安装及环境配置

Preparation

申请AWS 云服务器实例

申请AWS ES2 实例,选择 ubuntu 14.04版操作系统;
配置访问权限及设置SSH密钥;
配置并通过SSH访问服务器实例后台。

检测linux 内核版本

Docker只支持64-bit OS,对ubuntu OS的内核版本要求是不低于3.10。
查看当前内核版本:

$ uname -r
3.11.0-15-generic

更新apt 安装源

更新 apt 并配置CA证书

以管理员身份登录OS,更新包信息,并确保APT支持https,安装CA证书。

 $ sudo apt-get update
 $ sudo apt-get install apt-transport-https ca-certificates
安装 GPG 密钥
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
创建docker.list

打开 /etc/apt/sources.list.d/docker.list 文件,若不存在则创建。
编辑该文件,新增或配置访问地址(Ubuntu Trusty 14.04):deb https://apt.dockerproject.org/repo ubuntu-trusty main
保存完毕。

更新apt 资源包目录

更新 APT 资源包目录:sudo apt-get update
清除旧的文件:sudo apt-get purge lxc-docker
验证APT是否能从正确的远程资源库拉取文件:apt-cache policy docker-engine
现在,如果执行 apt-get upgrade 时,APT将从新的远程资源库拉取数据。

推荐安装linux-image-extra-*内核包

对于Ubuntu Trusty(14.04), Wily(15.10)和Xenial(16.04),建议安装linux内核包linux-image-extra-*,以支持 aufs 格式的存储驱动。此步为可选项。
安装方法:
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

Installation

简单的安装步骤

以管理员身份登录Ubuntu
更新 APT 资源包目录
sudo apt-get update
安装Docker
sudo apt-get install docker-engine
开启docker守护进程:
sudo service docker start
验证docker是否安装成功:
sudo docker run hello-world
该命令将下载一个测试镜像文件,并在docker容器中运行。若安装成功,该命令将输出hello world消息。

可选配置项

创建docker用户组并配置管理员权限

检查是否已经自动创建了 docker用户组,若没有,则手动创建:sudo groupadd docker
将当前用户加入到docker组:sudo usermod -aG docker $USER
然后重新登陆 terminal,现在,可以直接运行docker命令,而不需要 sudo 了。

调整内存配置和swap accounting

根据需要,此处略。

启用 UFW 端口转发

假如在docker运行服务器上启用了 UFW(简单防火墙),则需要进行一些额外配置。Docker通过桥接方式管理容器网络。UFW默认丢弃所有的端口转发请求,因此,一旦开启UFW,需要为Docker配置端口转发策略。另外,UFW默认拒绝所有访问请求。若希望从外部主机访问当前容器,则应配置允许访问docker所在的端口。Docker端口默认为2376 端口(启用TLS时),或者2375 端口(未启用TLS)。TLS未启用时,通信为非加密的。Docker默认不启用TLS。
配置UFW允许外部访问Docker端口的方法:
1). 检测ufw是否已经安装,及是否已经启用

$ sudo ufw status
Status: inactive # 表示未启用

2). 若已经安装且启用,则打开 /etc/default/ufw 并设置:DEFAULT_FORWARD_POLICY="ACCEPT"
3). 重新加载 UFW:sudo ufw reload
4). 允许访问Docker端口:sudo ufw allow 2375/tcp

配置Docker使用的DNS服务器

Ubuntu系统默认采用127.0.0.1 作为默认的 nameserver。打开/etc/resolv.conf 文件,可以看到:nameserver 127.0.1 。NetworkManager 服务通过配置dnsmasq 来访问实际的DNS服务器连接,并且同样使用了上述nameserver的配置文件。
在台式机上运行Docker容器时,Docker会提示如下warning信息:

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]

这是因为Docker容器无法访问本地DNS nameserver,实际上Docker默认使用了外部的nameserver。为解决这个问题,我们可以指定一个DNS服务器给Docker容器,或禁用NetworkManager的dnsmasq。如果禁用dnsmasq,可能会导致在某些网络条件下的DNS解析变慢。

以下是配置Docker守护进程,为其指定DNS的具体步骤:
首先,打开并编辑docker配置文件:sudo vi /etc/default/docker,增加以下配置项:

DOCKER_OPTS="--dns 8.8.8.8 --dns 192.168.1.1"

此处可以配置多个DNS服务器,通过空格分隔。
然后,保存并关闭文件,重启Docker守护进程:sudo service docker restart

另一个方法是禁掉NetworkManager的 dnsmasq,具体步骤:
首先,打开sudo nano /etc/NetworkManager/NetworkManager.conf 文件,注释掉:dns=dnsmasq 这一行。
保存文件,然后重启 NetworkManager 和Docker:

sudo restart network-manager
sudo restart docker
配置Docker随系统自启动

Ubuntu 15.04版本及以上,采用systemd 来管理启动项;而对于14.10及以下版本,则采用 upstart 来管理。
根据需要,此处略。

References

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pierre_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值