【如何简单优雅的来用Docker布置Python环境跑脚本【Linux / 宝塔】】

如何简单优雅的来用Docker布置Python环境跑脚本【Linux / 宝塔】

建议用宝塔,来安装Docker,贼方便!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
是不是很离谱?哈哈哈哈!
Linux终端安装方法请自行查找,我就不赘述了。

我们得创建一个Dockerfile文件,无需后缀

这是我的Dockerfile文件里的内容

我的Dockerfile文本里面主要是两个部分

  1. 布置Python环境的
  2. 设置Docker镜像与服务器时间同步的,原文指导
# 这是我们的配置环境,可以根据自己代码的情况来进行选择
FROM python:3.8
# 自己的署名,写不写无所谓
MAINTAINER xstormLeigh<678491@bb.cc>
# 我们设置时区,主要是为了镜像与服务器的同步时间用的
#添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai
# 设置工作目录,建议把你的要的文件都扔进这个文件夹,./的意思是当前文件夹的意思
WORKDIR ./
# 将文件夹里所有的文件复制到Docker镜像内
COPY . .
# 运行时区同步代码
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone   
# 运行Python 的 requirements.txt 文件来部署当前Python的环境
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 最后在终端下需要执行的的指令
CMD ["python", "xxxxx.py"]
  1. 帮助大家如何一键搞定requirements.txt文件,真的是非常的好用。
    首先大家需要安装一个库pip install pipreqs
    然后在你的项目文件夹下的终端内输入> pipreqs ./ --encoding=utf-8 --force就会自动生成requirements.txt文件啦。

下面我们来安装docker镜像image

进入到准备好的文件夹内准备安装

在这里插入图片描述
先看看是不是把所有的文件都准备好了,然后在Linux终端输入以下指令:
sudo docker build -t pyvisiteur[这里是的镜像名称] .
以下是服务器运行的Log打印,供大家学习参考

[root@VM-20-3-centos Visitor]# sudo docker build -t pyvisiteur .
Sending build context to Docker daemon  124.9kB
Step 1/8 : FROM python:3.8
 ---> 34fed916a9ea
Step 2/8 : MAINTAINER xstormLeigh<678491@bb.cc>
 ---> Running in 603379b13e7b
Removing intermediate container 603379b13e7b
 ---> 9197e128d6d3
Step 3/8 : ENV TimeZone=Asia/Shanghai
 ---> Running in dddd16b30e2d
Removing intermediate container dddd16b30e2d
 ---> 4babb33091cf
Step 4/8 : WORKDIR ./
 ---> Running in 861b591867de
Removing intermediate container 861b591867de
 ---> 6f6d1e13b441
Step 5/8 : COPY . .
 ---> 0514c52c69de
Step 6/8 : RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone   #使用软连接,并且将时区配置覆盖/etc/timezone
 ---> Running in 142d02e39fd8
Removing intermediate container 142d02e39fd8
 ---> 2870c05c117d
Step 7/8 : RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
 ---> Running in 71755a63e285
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting fake_useragent==0.1.11
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d1/79/af647635d6968e2deb57a208d309f6069d31cb138066d7e821e575112a80/fake-useragent-0.1.11.tar.gz (13 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting numpy==1.21.5
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/9c/ac/bd195e349dd5cacd6b8bbae2100c43017a57b27dbd0c6d99471c8f16a41d/numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.7/15.7 MB 2.6 MB/s eta 0:00:00
Collecting requests==2.27.1
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/2d/61/08076519c80041bc0ffa1a8af0cbd3bf3e2b62af10435d269a9d0f40564d/requests-2.27.1-py2.py3-none-any.whl (63 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 63.1/63.1 KB 9.1 MB/s eta 0:00:00
Collecting urllib3<1.27,>=1.21.1
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/6f/de/5be2e3eed8426f871b170663333a0f627fc2924cc386cd41be065e7ea870/urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.4/140.4 KB 2.4 MB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/1d/38/fa96a426e0c0e68aabc68e896584b83ad1eec779265a028e156ce509630e/certifi-2022.9.24-py3-none-any.whl (161 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 161.1/161.1 KB 2.9 MB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 KB 156.1 MB/s eta 0:00:00
Collecting charset-normalizer~=2.0.0
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/06/b3/24afc8868eba069a7f03650ac750a778862dc34941a4bebeb58706715726/charset_normalizer-2.0.12-py3-none-any.whl (39 kB)
Installing collected packages: urllib3, numpy, idna, charset-normalizer, certifi, requests
Successfully installed certifi-2022.9.24 charset-normalizer-2.0.12 fake_useragent-0.1.11 idna-3.4 numpy-1.21.5 requests-2.27.1 urllib3-1.26.12
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 22.0.4; however, version 22.2.2 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
Removing intermediate container 71755a63e285
 ---> 7416958ca4e6
Step 8/8 : CMD ["python", "visitors.py"]
 ---> Running in c2f352ba2053
Removing intermediate container c2f352ba2053
 ---> 61f6e9be3117
Successfully built 61f6e9be3117
Successfully tagged pyvisiteur:latest
[root@VM-20-3-centos Visitor]# docker ps -a
CONTAINER ID   IMAGE        COMMAND                CREATED        STATUS                   PORTS     NAMES
c3a7759e7b81   pyvisitors   "python visitors.py"   14 hours ago   Exited (0) 9 hours ago             boring_elbakyan
[root@VM-20-3-centos Visitor]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
pyvisiteur   latest    61f6e9be3117   38 seconds ago   985MB
pyvisitors   latest    1f1ddc8f65ac   14 hours ago     985MB
python       3.8       34fed916a9ea   4 days ago       913MB
[root@VM-20-3-centos Visitor]# docker ps -a
CONTAINER ID   IMAGE        COMMAND                CREATED         STATUS                   PORTS     NAMES
4ec7d9642572   pyvisiteur   "python visitors.py"   9 seconds ago   Up 8 seconds                       quizzical_greider
c3a7759e7b81   pyvisitors   "python visitors.py"   14 hours ago    Exited (0) 9 hours ago             boring_elbakyan
[root@VM-20-3-centos Visitor]# 

这样我们就布置好了一个Docker镜像Image。

  1. 我们可以通过docker images 来查看我们的镜像信息。
  2. docker run [镜像名称] 来运行我们指定的镜像,然后镜像会开启一个容器。
  3. docker ps -a 来查看镜像下的容器信息。
  4. docker logs [容器的ID] 来查看容器输出的log信息,如果有。
  5. sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'` 清理已结束(标记为Exited)的容器。
  6. 或用sudo docker rm $(sudo docker ps -a -q) 清理未运行的容器。
  7. 或用sudo docker container prune 清理孤立的容器。
  8. 更多繁琐的docker指令可以自行查找,网上又很多教程。
    在这里插入图片描述

另外我在第一部分也分享了宝塔的管理菜单,你也可以在那里进行操作安排。

在这里插入图片描述

结束语

希望能和大家多多沟通交流学习!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mike_Leigh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值