cloud-config-bootstrap.sh #!/bin/bash cat > "cloud-config.yaml" <<EOF #cloud-config ssh_authorized_keys: - ssh-rsa ... EOF sudo coreos-install -d /dev/vda -c cloud-config.yaml sudo reboot
#cloud-config coreos: units: - name: "docker.service" drop-ins: - name: "50-insecure-registry.conf" content: | [Service] Environment=DOCKER_OPTS='--insecure-registry="10.0.1.0/24"'
运行后配置文件所在位置
coreos配置文件位置https://coreos.com/os/docs/latest/cloud-config.html
/var/lib/coreos-install/user_data
官方文档
https://coreos.com/os/docs/latest/cloud-config.html
journalctl --identifier=coreos-cloudinit
It will show coreos-cloudinit
run output which was triggered by system boot.
更改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
使用daocloud.io的镜像加速 CoreOS: echo 'DOCKER_OPTS="-registry-mirror=http://xxxxxx.m.daocloud.io"' >> /run/flannel_docker_opts.env systemctl daemon-reload systemctl restart docker
mount 数据盘
https://coreos.com/os/docs/latest/mounting-storage.html
安装或升级Docker
高速安装Docker:
curl -sSL https://get.daocloud.io/docker | sh # 现在是 `1.8.0`
配置 Docker 加速器
加速利用的是 Docker 1.3.2 后提供的 Registry 功能,在国内做了一次 Cache。
- 配置方法
Ubuntu 中修改 Docker 的配置文件 /etc/default/docker
文件,添加 registry-mirror
项。
DaoCloud 也提供了命令行来进行配置,如下
$ echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://(_id).m.daocloud.io\"" | sudo tee -a /etc/default/docker $ sudo service docker restart
- 尽情享受Docker加速器
Docker加速器使用时不需要任何额外操作。就像这样下载官方Ubuntu镜像
docker pull ubuntu
阿里云实践
- 配置 EC 数据盘
新加的 100G 数据盘,是不会主动挂载的,需要手工操作,见:
我们将数据盘挂载到 /data
,用于保存 Docker 的 Image 和数据使用。
- 指向 Docker 数据位置到 /data
上
Docker 启动时,会读取一个配置文件,在 Ubuntu 中,位于 /etc/default/docker
,通过设置 --graph
来改变 Docker 的存取位置。
DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://(id).m.daocloud.io"
DOCKER_OPTS="$DOCKER_OPTS --graph=/data/docker" # DOCKER_OPTS="--registry-mirror=http://(id).m.daocloud.io --graph=/data/docker"
–-graph=/data/docker
,会自动生成/data/docker
目录(0700),并在该目录下创建 docker 相关文件。
- 如何知道是否从 registry-mirror 拉取?
在 pull image 结束时,系统会提示 mirror 的路径(不过还是不方便检验问题):
root@iZ:~# docker pull rails
Using default tag: latest latest: Pulling from library/rails c7f393bc4: Pulling fs layer c7f393bc4: Pulling image (latest) from docker.io/library/rails, mirror: http://(_id).m.daoclou722c7f393bc4: Download complete b87aaaec9: Download complete Status: Downloaded newer image for rails:latest
REF::