由于docker
的不断成熟,docker 在实际生产环境中的应用已经得到越来越多的印证,因此,公司项目想从原来的 Mina 部署转为docker
部署,但是 docker 仓库由于在国内没有 cdn,导致镜像下载速度无比的缓慢,所以决定换成国内镜像,由于操作系统是使用coreos
,无论国内外资料都非常少,因此途中爬了很多坑,这篇文章是我爬坑的总结
docker
是目前炙手可热的云计算开源项目,随着 docker 不断发展,不久前,国内第一家基于docker
技术的一站式容器云平台 daocloud 正式推出了,同时也给国内广大 docker 爱好者带来了 docker 的免费国内镜像。前往 docker 的官网注册一个账号登录后就能得到一个免费的 docker 镜像地址,如http://xxx.m.daocloud.io
coreos
是一个高度精简的 linux 操作系统,将许多原本需要复杂人工操作或者第三方软件支持的功能在操作系统级别进行了实现,同时剔除了其他对于服务器系统非核心的软件,比如 GUI 和包管理器。coreos
并不鼓励用户将各种应用软件直接安装在操作系统之上,而是提倡将所有服务运行在单独的应用容器中,由应用容器提供应用所需要的基础功能环境。这种做法将操作系统和应用程序的职责做了更彻底的分离,降低操作系统和应用程序的耦合度,使运行这些服务器的公司可以更快速、更廉价地更新自己的线上业务。
正式这种特性,coreos
可以说十分适合用来部署docker
服务
docker
在coreos
中是一个服务,在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
那么就大功告成了
虽然整个配置流程看起来并不复杂,但是使用比较新的技术难免要爬坑,由于国内外资料都非常的少,导致爬坑异常的艰难,希望大家能节省爬过这个坑的时间。