[英]Running Docker script application inside a container
我是Docker和容器的新手-我有一个Python 3脚本,该脚本根据命令行参数从网站中提取数据并打印结果。 如果没有可用的网络连接,它将使用Redis缓存数据。 我拥有的Dockerfile看起来像这样
FROM ubuntu:latest
RUN apt-get update -y && apt-get -y install redis-server && apt-get install -y python3-pip python3.5-dev build-essential
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
ENTRYPOINT ["python3"]
CMD ["pn.py"]
我能够构建图像,但是当我启动容器时,它大概运行了Python命令来在容器内运行脚本并退出,因此,我无法从主机看到结果。
该脚本需要命令行输入,否则将失败。 如何将它们指定为我可以用来从主机运行脚本的单个Docker运行命令的一部分?
或者,如何在不调用脚本的情况下启动容器,而是在正在运行的容器中手动运行脚本?
这取决于您要如何处理结果。
假设以下内容:
ENTRYPOINT
行告诉图像启动容器时应执行的操作。 那将是PID 1
。 CMD
内容用作ENTRYPOINT
。 基本上,您的码头工人正在执行被告知要做的事情。 如果希望它继续运行,则应给出不会以ENTRYPOINT
或CMD
退出的任务(如果不存在ENTRYPOINT
)。
要以shell
模式手动启动容器并查看会发生什么,可以按以下方式运行它:
docker run -ti [OPTIONS] [CONTAINER_NAME] bash
然后您将进入一个“进入”容器的外壳程序中,因此可以手动运行脚本:
#~ python3 pn.py
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.