如何在另一台机器上测试 Docker 容器?
How to test Docker container on another machine?
我写了一个简单的脚本如下:
#main.py
def test_function():
val = input('please enter a number')
for i in range(int(val)):
print (i)
我对它进行了 docker 化并将其放入容器中,然后 运行 从那里开始。一切正常。
我有另一台机器 Linux OS。我怎样才能在那里测试这个容器?
我需要简单地复制粘贴还是什么?
您需要在另一台机器上安装 Docker,然后将映像推送到 docker 注册表(例如 dockerhub / AWS ECR)。
我使用 ECR。您需要创建一个注册表,然后通过 运行ning docker tag <source image> <url of the registry>
使用注册表的 url 标记您的 docker 图像,
然后 运行 docker push <image name>
并从另一台机器上拉取它,运行 docker pull <url of the rigistry>
或者,您只需在另一台机器上安装 docker,将 docker 文件复制到那里,然后 运行 docker build -t <image name> /path/to/file
有几种抽象,您应该使用它们:
- 语言抽象(python 在你的情况下)
- os 抽象(docker 在你的情况下)
- api 抽象(在你的情况下是标准输出)
当谈到像您这样的简单函数时,没有理由对 docker 化的应用程序进行两次测试,因为 docker 很好地处理了 os 抽象,并使您的容器环境独立(most 次).
对于您的函数,您应该将输出从 stdout 更改为其他来源,并测试数据,您将通过单元测试将其放在那里。
您应该使用相同的语言和库(如 PyTest
)。
我写了一个简单的脚本如下:
#main.py
def test_function():
val = input('please enter a number')
for i in range(int(val)):
print (i)
我对它进行了 docker 化并将其放入容器中,然后 运行 从那里开始。一切正常。
我有另一台机器 Linux OS。我怎样才能在那里测试这个容器? 我需要简单地复制粘贴还是什么?
您需要在另一台机器上安装 Docker,然后将映像推送到 docker 注册表(例如 dockerhub / AWS ECR)。
我使用 ECR。您需要创建一个注册表,然后通过 运行ning docker tag <source image> <url of the registry>
使用注册表的 url 标记您的 docker 图像,
然后 运行 docker push <image name>
并从另一台机器上拉取它,运行 docker pull <url of the rigistry>
或者,您只需在另一台机器上安装 docker,将 docker 文件复制到那里,然后 运行 docker build -t <image name> /path/to/file
有几种抽象,您应该使用它们:
- 语言抽象(python 在你的情况下)
- os 抽象(docker 在你的情况下)
- api 抽象(在你的情况下是标准输出)
当谈到像您这样的简单函数时,没有理由对 docker 化的应用程序进行两次测试,因为 docker 很好地处理了 os 抽象,并使您的容器环境独立(most 次).
对于您的函数,您应该将输出从 stdout 更改为其他来源,并测试数据,您将通过单元测试将其放在那里。
您应该使用相同的语言和库(如 PyTest
)。