executando um contêiner docker no upstart no Amazon Linux não está funcionando

1

Estou tentando fazer com que meu contêiner seja executado na inicialização usando upstart.

Como o tutorial dizia - eu criei o /etc/init/nginx_server.conf

description "Nginx docker"
author "Me"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
  /usr/bin/docker run -d -p 80:80 test_server
end script

Execução do mais recente Linux da Amazon ( amzn-ami-hvm-2015.03.0.x86_64-gp2 )

O contêiner não está sendo executado (a execução de docker ps -a não é exibido)

    
por Boaz 10.05.2015 / 14:51

2 respostas

2

No Amazon Linux, o daemon do Docker é iniciado com um script init.d, não um script Upstart. Em seu script Upstart, você está tentando sinalizar a inicialização quando o serviço de encaixe é iniciado ( ..started docker ). Isso só funcionará se o script de inicialização do docker for um script Upstart.

Você pode adicionar initctl emit docker-started ao script docker init.d e, em seguida, acionar o arquivo de configuração do serviço Upstart com esse evento (por exemplo, start on docker-started )

    
por 11.02.2016 / 15:51
1

Não é possível executar um 'docker run' a partir do upstart, o que você deve fazer é criar um contêiner a partir de uma imagem do docker e, em seguida, executar o 'docker start' no upstart. Se você verificar / var / log / messages, provavelmente verá algo como:

init: test_server main process (6570) terminated with status 1
init: test_server respawning too fast, stopped

Para contornar, tente executar:

docker run -d -p 80:80 test_server

Você receberá o ID do contêiner como uma saída:

a64db8e1cca5

Em seguida, insira seu arquivo upstart:

description "Nginx docker"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
  /usr/bin/docker start -a a64db8e1cca5
end script
    
por 10.05.2015 / 16:11