当前位置:   article > 正文

使用 Docker 运行简单的 python 程序_以下是一个简单的python程序,用户数输入一个最小值和最大值

以下是一个简单的python程序,用户数输入一个最小值和最大值

以下是一个简单的 python 程序,用户输入一个最小值和最大值,输出二者之间的随机数

from random import randint

min_number = int(input('Please enter the min number: '))
max_number = int(input('Please enter the max number: '))

if (max_number < min_number): 
  print('Invalid input - shutting down...')
else:
  rnd_number = randint(min_number, max_number)
  print(rnd_number)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

本机上并未安装 python, 现在创建容器,并让这段代码在容器中运行:

1. 首先写一个 Dockerfile:

# 从 hub.docker.com 上 pull 最新 python image
FROM python

# 容器内的工作目录
WORKDIR /app

# copy 源代码到容器
COPY . /app

CMD ["python", "rng.py"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

2. build image,使用命令:

docker build .
  • 1

3. 创建并运行容器:

对于这个程序,直接运行: docker run he_generated_id_of_the_image 会出错:

docker run the_generated_id_of_the_image // ERROR !
  • 1

而是要在命令中加 -it :
-it-i-t 的合并。
-i: interactive 与容器交互
-t: tty 分配一个伪 TTY, 即创建一个终端。

docker run -it the_generated_id_of_the_image
  • 1

用户可以在容器内输入数据,并获得输出:

PS D:\python-app-starting-setup> docker run -it 7e318e98ef5c
Please enter the min number: 12
Please enter the max number: 24
22
PS D:\python-app-starting-setup> 
  • 1
  • 2
  • 3
  • 4
  • 5

4. 重启容器,

docker run 重新生成新的容器,默认模式为 attached 即附加模式,使用附加模式时,容器在前台运行,可以监听该容器的输出,同时终端被阻塞,无法响应用户的新的输入命令。

docker start 则重启运行现有的容器, 默认模式为 detached 即分离模式,容器在后台运行。

如果应用程序,依赖项,以及源代码等等都没有改变,也就是 image 没有变,那么没有必要创建全新的容器,而是直接用 docker start 重新启动现有的容器就可以。

使用 docker ps -a 或者 docker container ls -a 列出全部正在运行以及已经停止的容器:

CONTAINER ID   IMAGE          COMMAND                  CREATED             STATUS                         PORTS     NAMES
4082f25c47bb   7e318e98ef5c   "python rng.py"          4 minutes ago       Exited (0) 4 minutes ago                 jovial_pasteur
ce7598ddbebb   7e318e98ef5c   "python rng.py"          About an hour ago   Exited (1) About an hour ago             nostalgic_cohen
df76886dc1a4   7e318e98ef5c   "python rng.py"          About an hour ago   Exited (0) About an hour ago             clever_hertz
71b61835bfb3   python         "python3"                2 hours ago         Exited (0) 2 hours ago                   hardcore_payne
89211c5ce6cd   834a8f2178cf   "docker-entrypoint.s…"   3 hours ago         Exited (137) 2 hours ago                 goofy_sinoussi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

现在重启容器,重新执行 python 程序,使用命令:

 docker start -a -i 4082f25c47bb
  • 1

-t 不需要,因为已经被 memorized,运行结果:

PS D:\python-app-starting-setup>  docker start -a -i 4082f25c47bb
Please enter the min number: 1
Please enter the max number: 100
44
PS D:\udemy\Docker-Max\python-app-starting-setup> 
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/752630
推荐阅读
相关标签
  

闽ICP备14008679号