从cloud-init启动运行docker不正确地将“docker.io”前缀为映像名称

我正在用一个cloudinit文件启动一个GCE服务器,它调用一个docker镜像。 在启动时,拖动泊坞窗图像失败,但如果我login时运行相同的服务成功。 我希望它在发布时能够工作。

看看服务日志,它似乎是不正确的docker.iodocker拉前缀,所以失败的工作。

有什么我可以做,以防止这个? 在尝试docker pull之前,我是否需要等待或检查其他东西?

这是我的cloud-init文件:

 #cloud-config users: - name: shinyuser uid: 2000 write_files: - path: /etc/systemd/system/shinyserver.service permissions: 0644 owner: root content: | [Unit] Description=Shiny server [Service] ExecStart=/usr/bin/docker run --name=vdshinyserver -p 80:3838 -v /home/shinyuser/shinyapps/:/srv/shiny-server/ -v /home/shinyuser/srv/shinylog/:/var/log/ rocker/shiny ExecStop=/usr/bin/docker stop vdshinyserver runcmd: - systemctl daemon-reload - systemctl start shinyserver.service 

这里是日志:

 mark@xxxshiny ~ $ sudo journalctl -u shinyserver -- Logs begin at Wed 2016-10-05 08:39:06 UTC, end at Wed 2016-10-05 08:39:46 UTC. -- Oct 05 08:39:11 xxxshiny docker[1016]: Unable to find image 'rocker/shiny:latest' locally Oct 05 08:39:26 xxxshiny docker[1016]: Pulling repository docker.io/rocker/shiny Oct 05 08:39:31 xxxshiny docker[1016]: /usr/bin/docker: Tag latest not found in repository docker.io/rocker/shiny. Oct 05 08:39:31 xxxshiny docker[1016]: See '/usr/bin/docker run --help'. Oct 05 08:39:31 xxxshiny docker[1045]: Error response from daemon: No such container: vdshinyserver mark@visit-dubai-shiny ~ $ sudo systemctl start shinyserver.service mark@visit-dubai-shiny ~ $ sudo journalctl -u shinyserver ... Oct 05 08:42:22 xxxshiny docker[1117]: Unable to find image 'rocker/shiny:latest' locally Oct 05 08:42:23 xxxshiny docker[1117]: latest: Pulling from rocker/shiny Oct 05 08:42:23 xxxshiny docker[1117]: a84f66826a7f: Pulling fs layer Oct 05 08:42:23 xxxshiny docker[1117]: aaf7c0da390d: Pulling fs layer ...etc... 

我编辑了我的cloudinit以匹配Docker文档中的要求,在文件中包含docker.service的要求,现在它可以工作:

 #cloud-config users: - name: shinyuser uid: 2000 write_files: - path: /etc/systemd/system/shinyserver.service permissions: 0644 owner: root content: | [Unit] Description=VisitDubai Shiny server for reporting Requires=docker.service After=docker.service [Service] Restart=always ExecStart=/usr/bin/docker run --name=vdshinyserver -p 80:3838 -v /home/shinyuser/shinyapps/:/srv/shiny-server/ -v /home/shinyuser/srv/shinylog/:/var/log/ rocker/shiny ExecStop=/usr/bin/docker stop vdshinyserver 
Interesting Posts