Docker制作Python应用镜像(基于alpine镜像)

-
-
2025-09-03 10:48

1.预先写好DockerFile

# 使用官方Python运行时作为父镜像  
FROM python:3.6.8-alpine
  
# 将工作目录设置为/app  
WORKDIR /app  
  
# 将当前目录内容复制到位于/app中的容器中  
COPY . /app  

# 升级pip到最新版本(可选,有时候不更新会出现下载库失败)  
RUN pip install --upgrade pip  

# 设置时区,alpine镜像默认使用UTC时区,没有其他时区的包
RUN apk update && apk add tzdata 
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
RUN echo "Asia/Shanghai" > /etc/timezone

# 安装requirements.txt中指定的任何所需包
RUN pip install --no-cache-dir -r requirements.txt
  
# 允许容器作为可执行文件运行  
CMD ["python", "./app.py"]

2.将app.py和DockerFile放在同一个目录

3.制作镜像包

docker build [--no-cache] -t <镜像名> .
# --no-cache:可选项,不带这个参数,打包会快一些
# <镜像名>:打包后镜像的名字

4.运行镜像

docker run -d \ 	# -d表示脱离附加,可以在后台运行
--name <容器名> \ 	# 可选项,容器运行的名字
-v 宿主路径:/容器路径 \	# 用于将容器卷映射到主机,否则会运行失败,映射是单向的,宿主机覆盖容器,注意不要把容器内的文件覆盖了
-v /etc/localtime:/etc/localtime \
-v /etc/timezone:/etc/timezone \	# 如果在Dockerfile设置时区,可以在运行的时候加上这两行,将本机时区映射到容器
--restart unless-stopped \ # 崩溃后自动重启容器
镜像名:镜像tag		    # 没有tag的话。默认是latest

5. 运行失败排查

查看日志

docker logs 容器名

运行不起来的情况下查看容器内目录

docker run --rm -it 镜像名 ls /容器内目录名

 

 

 


目录