部署 CoreOS 中更改 Docker 镜像地址

gamefu · 2015年07月07日 · 最后由 brucewzp 回复于 2015年07月07日 · 6250 次阅读

由于docker的不断成熟,docker 在实际生产环境中的应用已经得到越来越多的印证,因此,公司项目想从原来的 Mina 部署转为docker部署,但是 docker 仓库由于在国内没有 cdn,导致镜像下载速度无比的缓慢,所以决定换成国内镜像,由于操作系统是使用coreos,无论国内外资料都非常少,因此途中爬了很多坑,这篇文章是我爬坑的总结

docker 国内镜像

docker是目前炙手可热的云计算开源项目,随着 docker 不断发展,不久前,国内第一家基于docker技术的一站式容器云平台 daocloud 正式推出了,同时也给国内广大 docker 爱好者带来了 docker 的免费国内镜像。前往 docker 的官网注册一个账号登录后就能得到一个免费的 docker 镜像地址,如http://xxx.m.daocloud.io

关于 coreos

coreos是一个高度精简的 linux 操作系统,将许多原本需要复杂人工操作或者第三方软件支持的功能在操作系统级别进行了实现,同时剔除了其他对于服务器系统非核心的软件,比如 GUI 和包管理器。coreos并不鼓励用户将各种应用软件直接安装在操作系统之上,而是提倡将所有服务运行在单独的应用容器中,由应用容器提供应用所需要的基础功能环境。这种做法将操作系统和应用程序的职责做了更彻底的分离,降低操作系统和应用程序的耦合度,使运行这些服务器的公司可以更快速、更廉价地更新自己的线上业务。 正式这种特性,coreos可以说十分适合用来部署docker服务

更改 docker 镜像地址

dockercoreos中是一个服务,在coreos中没一个服务都由一个 unit 文件来定义,docker的 unit 文件在usr/lib/systemd/system/docker.service,我们需要将它拷贝出来将其放在 docker 服务启动时会加载的位置


cp /usr/lib/systemd/system/docker.service /etc/systemd/system

打开这种文件,我们会发现里面有一个更改 docker 镜像地址的关键环境变量$DOCKER_OPTS,而更改镜像地址的本质就是更改$DOCKER_OPTS的值。 这个环境变量的值是在/run/flannel_docker_opts.env中设置的,如果你的系统里没有这个文件,就自己添加一个这个文件

往这个文件里添加从 daocloud 上获取的镜像地址


DOCKER_OPTS="--registry-mirror=http://xxxx.m.daocloud.io"

添加完成后,运行


sudo systemctl daemon-reload
sudo systemctl restart docker

运行 ps aux 如果能看到


root      1725  0.6  1.7 221400 18328 ?        Ssl  15:27   0:00 docker --daemon --host=fd:// --registry-mirror=http://xxx.m.daocloud

那么就大功告成了

总结

虽然整个配置流程看起来并不复杂,但是使用比较新的技术难免要爬坑,由于国内外资料都非常的少,导致爬坑异常的艰难,希望大家能节省爬过这个坑的时间。

楼主说得好啊,我顶啊。

楼主干货棒棒哒

需要 登录 后方可回复, 如果你还没有账号请 注册新账号