构建docker镜像封装python脚本和环境及安装依赖

Docker容器化技术可以极大简化应用的部署和管理。本文介绍Docker容器中运行Python脚本并传递参数的基本方法,本地构建自定义docker镜像,封装python脚本和基础环境,安装依赖,以ubuntu / centOS linux系统为例。

1. ubuntu / centOS docker安装

1.1 下载并安装适用于您操作系统的Docker版本:

参考下列文章:

https://www.oryoy.com/news/ru-he-zai-linux-xi-tong-zhong-che-di-xie-zai-bing-zhong-xin-an-zhuang-docker-ji-qi-xiang-guan-zu-jia.html

1.2 配置docker国内镜像源

sudo vi /etc/docker/daemon.json

Docker 国内镜像源地址:

拷贝下列代码至/etc/docker/daemon.json文件中, wq保存退出。

{
  "registry-mirrors": [
    "https://docker.hpcloud.cloud",
    "https://docker.m.daocloud.io",
    "https://docker.unsee.tech",
    "https://docker.1panel.live",
    "http://mirrors.ustc.edu.cn",
    "https://docker.chenby.cn",
    "http://mirror.azure.cn",
    "https://dockerpull.org",
    "https://dockerhub.icu",
    "https://hub.rat.dev"
  ]
}

1.3 重新载入配置文件

sudo systemctl daemon-reload

sudo systemctl restart docker

# 查看docker状态
# systemctl status docker

2 docker镜像封装文件

当前目录需同时存在hello.py、Dockerfilerequirements.txt 三个文件。

2.1 python 脚本

python名称hello.py。

# hello.py
import os

def main():
    name = os.getenv('NAME', 'World')
    print(f"Hello, {name}!")

if __name__ == "__main__":
    main()

2.2 Dockfile

# 本地导入镜像源
ARG BASE_IMAGE

FROM $BASE_IMAGE

ENV NAME=World

# 设置工作目录
WORKDIR /app

# 复制当前目录下的文件到容器中的工作目录
COPY . /app

# 安装依赖(如果有的话)
RUN pip install --no-cache-dir -r requirements.txt

# 指定容器启动时执行的命令
CMD ["python", "hello.py"]

2.3 requirements.txt

# 安装的依赖库
pandas

3 docker基础操作

3.1 清理系统缓存

sudo docker system prune -a

3.2 清除构建缓存

sudo docker builder prune

3.3 安装基础docker镜像

# 安装基础python镜像
docker pull python:3.9-slim

# 查看docker镜像
docker image list
# python       3.9-slim   47e5116b5ec1   4 weeks ago      125MB

# 构建docker镜像
# -t: 镜像名称, .表示当前目录
docker build --build-arg BASE_IMAGE=python:3.9-slim -t hello .

# 查看构建镜像
docker image list

2.4 删除镜像

# 如需删除构建的镜像执行以下命令
sudo docker rmi -f hello:latest

2.5 运行镜像

# 无输入参数测试
sudo docker run hello

# 测试输入参数NAME运行结果
sudo docker run --rm -it -e NAME=jack hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生信与基因组学

每一份鼓励是我坚持下去动力

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

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

打赏作者

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

抵扣说明:

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

余额充值