Como executar um programa dentro de um contêiner Docker?

4

Estou executando um aplicativo chamado ERDDAP usando este contêiner Docker é executado assim:

docker stop erddap
docker rm erddap
docker run -p 8090:8080 -p 8543:8443 -d -v /usr/local/erddap/tomcat-users.xml:/opt/tomcat/conf/tomcat-users.xml -v /usr/local/erddap:/opt/tomcat/content/erddap -v /usr/local/erddapData:/erddapData --name erddap axiom/docker-erddap

Este aplicativo lê um arquivo datasets.xml que deve ser gerado por um aplicativo chamado GenerateDatasetsXml que está dentro do contêiner: link

Então, como posso executar este programa que está dentro do contêiner do Docker para gerar meu arquivo datasets.xml ?

    
por Rich Signell 01.03.2016 / 19:54

1 resposta

5

Para executar comandos do shell dentro da execução do contêiner do docker:

$ docker exec -it erddap bash

Isso levará você ao contêiner docker em / opt / tomcat. Seu prompt de comando será parecido com este

root@d2adcc7db35a:/opt/tomcat# 

Primeiro, verifique se a sua pasta erddapData está em / erddapData e, em seguida, execute:

cd /opt/tomcat/webapps/erddap/WEB-INF/
bash GenerateDatasetsXml.sh 

Isso iniciará o script GenerateDatasetsXml. Depois de responder a todas as perguntas, você pode sair do contêiner usando:

exit

A saída deste script está no diretório erddapData local:

$ cd /usr/local/erddapData/logs/
$ cat GenerateDatasetsXml.out

Você pode copiar a saída para o local onde você precisa em seu documento datasets.xml, que você deve salvar em / usr / local / erddap /

    
por 01.03.2016 / 20:07

Tags