将python项目打包成docker镜像

由于项目需要,需要把项目打包在aarch64架构环境的docker中,但是不管是系统还是服务器都是x86架构的所以需要通过qemu创建一个aarch64架构的ubuntu 虚拟机。 首先创建虚拟机的过程站一个UP主Windows(x86)上部署ARM虚拟机(Ubuntu)_哔哩哔哩_bilibili

https://www.cnblogs.com/minuhy/p/18324397这篇文章也是他写的,内容很好,可以安装成功。照着这个来就行

最主要的就是进入ubuntu内部之后我们所需要做的事情。首先要在ubuntu中安装docker。我当时时下载了一个离线包, 我记得还是非常快的,网上也有很多教程,这里我们就不详细讲了。 

下面打包成镜像是一个比较麻烦的事情。

首先我们需要将我们的项目文件放入虚拟机中。我是放在了home里。然后我们需要在我们的项目内部创建一个dockerfile,

我把我的dockerfile贴在这里,写的不是很规范,我看他们都是用&符号连接, 但是我秉承着不会就不弄的心态,就这么写了哈哈哈哈。

#使用官方python3.8 镜像作为基础镜像
FROM python:3.8-slim-buster

# 设置工作目录
WORKDIR /app

# 复制当前目录下的所有文件到容器的工作目录
COPY . .

# 安装项目所需依赖库
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6  -y
RUN pip install opencv-python-headless -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install torch -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install torchvision -i https://mirrors.aliyun.com/pypi/simple/
# ָ容器启动时运行命令
CMD ["python", "main.py"]

然后确保你现在cd到该项目中,

docker build -t my-flask-app .

 输入此命令, -t 后面是你镜像的名字, 后面不要忘了空格和 "."这个点不能忘

然后你可以通过docker images 查看你是否已经创建好镜像。

接下来就是我们创建容器的过程

创建容器,因为我需要创建的是一个后台运行的 服务, 所以我加了-d的命令我的命令就是这样的。

docker run -dit --name 容器名 -p 8080:2222 镜像名 /bin/bash

之前创建完容器之后老是报错,就是因为其实我在dockerfile里指定的启动容器的命令有报错,但是如果我不进入容器内部无法查看该报错, 所以我选择覆盖我的dockerfile内的启动命令,改为/bin/bash,  这样的话就可以顺利启动容器了。

然后我们通过 

docker ps -a 

查看我们已经创建好的容器, 我们可以用容器ID 的前四位启动容器

docker start 容器ID

然后通过

docker ps 

查看容器运行状态

docker exec -it 容器ID /bin/bash

进入容器内部。

在容器内部你就可以像终端一样pip 以及各种调试你的代码。

最后把你调试好的容器打包成镜像tar,传输到你想部署的服务器上即可~

折腾了很久,虽然看似简单,但是我实在是愚笨。从不明白docker到稍微了解了一点点点点点点点点皮毛,这种感觉很舒服哈哈哈哈哈哈哈哈哈哈哈哈哈。希望明天会更好~

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值