如何在 Docker 容器内运行程序?

如何在 Docker 容器内运行程序?

我正在运行一个名为的应用程序ERDAP使用这个 Docker 容器如此运行:

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

该应用程序读取一个应该由容器内 datasets.xml名为的应用程序生成的文件:GenerateDatasetsXmlhttp://coastwatch.pfeg.noaa.gov/erddap/download/setupDatasetsXml.html#GenerateDatasetsXml

那么如何运行 Docker 容器内的这个程序来生成我的datasets.xml文件呢?

答案1

要在 docker 容器内执行 shell 命令,请运行:

$ docker exec -it erddap bash

这将带您进入位于 /opt/tomcat 的 docker 容器。你的命令提示符将如下所示

root@d2adcc7db35a:/opt/tomcat# 

首先验证您的 erddapData 文件夹位于 /erddapData,然后运行:

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

这将启动GenerateDatasetsXml 脚本。回答完所有问题后,您可以使用以下方法离开容器:

exit

该脚本的输出位于您的本地 erddapData 目录中:

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

您可以将输出复制到 datasets.xml 文档中需要的位置,该文​​档应保存在 /usr/local/erddap/ 中

相关内容