如何从bash脚本启动Docker容器?

时间:2020-06-19 15:45:11

标签: bash docker

我无法找到任何令人满意的答案。我有一个简单的脚本,希望在守护程序模式下运行多个容器:

#!/usr/bin/env bash

docker run -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data -v /home/gsilver1/data/QuickUMLS/data/:/data/UMLS ahc-nlpie-docker.artifactory.umn.edu/qumls:1 /home/QuickUMLS/run.sh

docker run -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/b9:1 /usr/share/biomedicus/scripts/run_biomedicus.sh

docker run --env  umlsUser='USER' --env umlsPass='PW' -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/clmp:4 /usr/share/clamp/scripts/run_clamp.sh

docker run -d -it -v /mnt/DataResearch/gsilver1/note_test/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/mm:4 /usr/share/public_mm/scripts/run_metamap.sh

docker run --env  ctakes_umlsuser='USER' --env ctakes_umlspw='PW' -d -it -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/ctks:1 /usr/share/ctakes/scripts/run_ctakes.sh

从终端执行时,这些命令运行良好。但是,从脚本运行时,出现以下错误:

(base) gsilver1@d0pconcourse002:~/development/scripts$ ./run_nlp.sh
./run_nlp.sh: line 3: docker run -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data -v /home/gsilver1/data/QuickUMLS/data/:/data/UMLS ahc-nlpie-docker.artifactory.umn.edu/qumls:1 /home/QuickUMLS/run.sh: No such file or directory
./run_nlp.sh: line 5: docker run -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/b9:1 /usr/share/biomedicus/scripts/run_biomedicus.sh: No such file or directory
./run_nlp.sh: line 7: docker run --env  umlsUser='horcle' --env umlsPass='nEj123456' -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/clmp:4 /usr/share/clamp/scripts/run_clamp.sh: No such file or directory
./run_nlp.sh: line 9: docker run -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/mm:4 /usr/share/public_mm/scripts/run_metamap.sh: No such file or directory
./run_nlp.sh: line 11: docker run --env  ctakes_umlsuser='horcle' --env ctakes_umlspw='nEj123456' -d -v /mnt/DataResearch/DataStageData/ed_provider_notes/:/data ahc-nlpie-docker.artifactory.umn.edu/ctks:1 /usr/share/ctakes/scripts/run_ctakes.sh: No such file or directory
(base) gsilver1@d0pconcourse002:~/development/scripts$

这似乎表明该脚本未在docker命令末尾解释命令以在docker容器的文件系统中运行,而不是从远程文件系统中运行。我试过在docker命令周围加上引号,然后使用-c以特定用户身份运行,等等。一切都无济于事。如何获取在每个Docker容器中运行的命令,而无需修改Docker映像的入口点?

1 个答案:

答案 0 :(得分:1)

尝试用引号将路径括起来,有时会导致意外行为。

相关问题