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、Dockerfile和requirements.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