我目前正在使用主机上的Python脚本自动化Docker容器的命令。目前,这个Python脚本会构建并运行一个
我的目标是让Python脚本执行容器内的所有命令,这样如果我想运行不同的脚本,就不需要更改容器。我尝试了两种方法。
第一种方法是在Python脚本中运行
第二种方法使用
我对Docker还比较新,认为可能有些东西我没有考虑到可以运行脚本命令。我遇到的一个可能的解决方案是
docker-compose
文件,容器中的命令都写在docker-compose
文件和Dockerfile
中。我的目标是让Python脚本执行容器内的所有命令,这样如果我想运行不同的脚本,就不需要更改容器。我尝试了两种方法。
第一种方法是在Python脚本中运行
os.system()
命令,但是这只能打开容器的shell,os.system()
命令无法在Docker容器本身中执行代码。第二种方法使用
Dockerfile
中的CMD,但它受限于容器,并且难以编码。如果我有多个脚本,就必须更改Dockerfile
,我不想这样做。我想构建一个默认容器,其中所有服务都在运行,然后在主机上运行Python脚本以便在容器上运行一系列命令。我对Docker还比较新,认为可能有些东西我没有考虑到可以运行脚本命令。我遇到的一个可能的解决方案是
nsenter
。这是一个可靠的解决方案吗?它是如何工作的?还有更简单的方法吗?我也使用docker-volume
将Python文件复制到容器中以在构建时运行,但我仍然找不到自动访问和从主机上运行这些Python脚本的解决方案。
docker exec
的脚本,而是设置您的容器自给自足。您能够给出一个非常具体的例子,包括示例代码、相关的Dockerfile和docker-compose.yml
,说明您需要使用这种方式执行的特定任务吗? - David Mazetkinter
作为GUI,有2个容器,结果是用于威胁分析/工件的网络流量的.pcap文件。一个容器中有小型Python脚本portscanner.py
等,另一个容器中有tcpdump
。网络已设置和卷以与主机共享文件,但是我在dockerfile
中使用CMD
来运行脚本。我希望能够通过tkinter
GUI控制这些脚本的操作,而无需重新启动容器,只需传递命令以启动不同的脚本运行即可。这不是典型的Docker用例。它是一个轻量级的自动对抗仿真应用程序。 - Chris Maze