从头开始:Python程序创建Docker图像并运行容器


浏览:550 次

前面写的字:

我有一个白色的小Docker。因为我需要在不久前用Docker将实习单元的代码打包成图像,然后用于多个用户,所以我从头开始学习Docker。我参考了一些书籍和视频,发现除了解释大家都知道的基本操作之外,我需要重点学习的流程图像制作程序非常简单,比如打印Hello Docker!或者一个简单的烧瓶webapp。然而,我需要打包的程序是那些需要读取文件的程序。我在网上查了很多资料,没有发现类似的,所以我想在这里分享。由于我的技术有限,可能有更简单的方法来完成打包图像的任务。请给我更多的建议。本文中使用的Docker命令非常简单,如果你读一点Docker,你应该会理解它们~

这个博客是关于什么的?

我想打包一个简单的python程序,它读取txt并将其输出为图像,然后使用scp命令将python文件所需的文件从另一个服务器上载到docker容器,并让python图像容器输出结果

我的工作环境:硬件环境:两台Linux服务器都配备了Centos 7,两台服务器可以互相ping。一个有码头工人,另一个有装卸工人,这都无关紧要。如果您只是想尝试,这两个虚拟机也应该可用

1.制作图像

我使用的图像制作方法是Dockerfile+python程序来创建图像。我的python文件名是Docker_test.py

1.1 Python文件代码

这个python文件实现了一个简单的VID-Txt文件读入,然后输出Txt文件的内容。但是,该文件的特点是您需要读取该文件。如果你有一个更复杂、更大的项目,原则是一样的。

导入osdef main():

打开(r'VID.txt',encoding=“utf-8”)作为文件:

#文件类型打印的文件对象(类型(文件))

打印(文件)

#阅读全文并打印出来(file.Read())

#此时再次读取时,如果返回EOFprint(file.read())__name__=='__main__':

main()

1.2 Dockerfile文件

Dockerfile是我使用图像制作方法所必需的。如果您对其参数感到困惑,可以查看文档。链接如下:

#基础图像基于

来自python:3.6#

##维护人员信息

#

#维护员小宝543010129@qq.com

#

##将代码添加到代码文件夹

复制pythontest。Py/code/##将代码文件夹设置为工作目录

#

工作人员/代码

#

##安装支持

#

#

CMD[“python”,“pythontest.py”]

1.3图像创建过程:

使用ssh登录服务器。我使用xshell登录

创建dockertest文件夹并输入

mkdirdocker测试

cd停靠测试

通过vim将上述Python程序和Dockerfile写入docker测试文件夹。如果此处报告了错误,则很可能您尚未安装vim。请参阅此博客:https://www.cnblogs.com/raorao1994/p/8890751.html

vim pythontest.py

vim Dockerfile文件

此时,使用ls命令检查您写入的文件是否在文件夹中。如果显示Dockerfile python测试py没有问题

使用docker build命令创建图像

官方Docker构建文档:https://docs.docker.com/engine/reference/commandline/build/我实际上输入了下面的一个。别忘了最后一点

docker构建-t pythontest

然后显示图像创建成功

2.运行容器

我们已经成功创建了python测试程序的图像。现在,让我们运行图像以查看docker run命令文档:

2.1操作容器

docker运行--名称pythontest-d pythontet

结果如预期。有一个问题。它显示容器已创建,但未返回任何结果。使用Docker ps-a查询,发现容器确实存在并且处于退出状态

在这里,我们创建另一个容器python测试以进行比较_新建,或者基于python的测试程序图像,使用以下命令创建

docker运行--name pythontest_new-d-it pythontest/bin/bash

通过这种方式,我们创建了一个名为python test_new的新容器,检查状态并发现它正在持续运行

3.将文件传输到容器

现在我们将转移VID。python程序向容器所需的txt文件

在另一台服务器上,VID。使用了VIM编写的txt文件。内容是一些随机的字符串

使用Docker exec进入容器Docker xec命令教程:

我们通过scp命令将另一台服务器上的文件传输到前面使用的服务器:scp[optional parameter]file_ source file_如果target不理解,您可以阅读以下博客:

我们可以在另一台服务器上看到VID。txt文件被传输到Docker容器中,然后退出容器。

4.运行已传输文件的docker容器

相关资讯:
农产品电子商务向企业个人农产品电子贸易方向发展的效益

农产品电子商务向企业个人农产品电子贸易方向发展的效益

查看
Web 3.0技术的基本方向

Web 3.0技术的基本方向

查看
认知

认知

查看
面向对象的

面向对象的

查看
2018-12-25

2018-12-25

查看