繁体   English   中英

如何将 bash 放入 docker 容器中

[英]How to bash into a docker container

试图将 bash 放入容器并执行一个 for 循环,该循环仅执行一个命令(顺便说一下,它适用于单个文件)。 它甚至似乎呼应了正确的命令……我忘记了什么无标题

for pdf in *.pdf ;
do 
 docker run --rm -v "$(pwd):/home/docker" leofcardoso/pdf2pdfocr -g jpeg2000 -v -i '\'''$pdf''\''';
done

您可以使用以下命令在容器中 bash:

查看 docker 容器 id

docker container ls 

在容器内输入 bash。

docker exec -it CONTAINER_ID bash

首先,您没有在 docker 运行命令中分配tty ,并且 docker 容器在转换文件后很快就会死掉。 这是容器的主要过程

#!/bin/bash

cd /home/docker
exec pdf2pdfocr.py "$@"

所以,在这种情况下,这个容器的生命周期就是exec pdf2pdfocr.py "$@"命令的生命周期。

正如@Fra 所提到的,覆盖入口点并手动运行命令。

docker run --rm -v "$(pwd):/home/docker" -it --entrypoint /bin/bash leofcardoso/pdf2pdfocr

但是在上面的运行命令中,docker 容器不会做任何事情,只会分配tty ,bash 将打开。 因此,您可以使用 docker exec 转换容器内的文件,然后运行pdf2pdfocr.py -g jpeg2000 -v -i mypdf.pdf

因此,如果您想使用覆盖入口点运行,那么您可以尝试。

docker run -it --rm --entrypoint /bin/bash -v "$(pwd):/home/docker" leofcardoso/pdf2pdfocr -c "pdf2pdfocr.py -g jpeg2000 -v -i mypdf.pdf"

或使用 bash 脚本

#!/bin/bash
for pdf in *.pdf ;
do
 echo "converting $pdf" 
 docker run -it --rm --entrypoint /bin/bash -v "$(pwd):/home/docker" leofcardoso/pdf2pdfocr -c "pdf2pdfocr.py -g jpeg2000 -v -i  $pdf"
done

但是容器在完成转换后会死掉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM