2016-10-05 3 views
0

docker 이미지를 호출하는 cloudinit 파일이있는 GCE 서버가 시작됩니다. 시작할 때 docker 이미지를 가져 오는 것은 실패하지만 로그인 할 때 동일한 서비스를 실행하면 성공합니다. 나는 발사시 작동하길 원합니다.cloud-init에서 run docker를 시작하면 이미지 이름에 "docker.io"라는 접두어가 잘못 붙습니다.

서비스 로그를 보면 도커가 접두어로 붙어있어 docker.io이라고 표시되어 작업에 실패한 것으로 보입니다.

내가 이것을 방지하기 위해 할 수있는 일이 있습니까? 도커를 당기기 전에로드 할 다른 것을 기다리거나 확인할 필요가 있습니까? 여기

내 cloudinit 파일입니다

#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 

그리고 여기하면 로그입니다

나는에 docker.service의 요구 사항을 포함하도록 Docker documentation에 일치하는 내 cloudinit 편집
mark[email protected] ~ $ 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 

[email protected] ~ $ sudo systemctl start shinyserver.service 
[email protected] ~ $ 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... 

답변

1

파일로 바뀌면 이제 작동합니다 :

#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 
+0

나는 또한 'Requires'와'After'를 추가했고, t Restart = always는 중요합니다. –