由于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服务启动时会加载的位置

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

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

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

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

添加完成后,运行

shell
sudo systemctl daemon-reload sudo systemctl restart docker

运行 ps aux 如果能看到

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

那么就大功告成了

总结

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


gameFu
516 声望29 粉丝

热爱ruby,疯狂痴迷行业最新技术,重度Google依赖症患者