Docker-使用Dockerfile打包并且上传为公共镜像

整体步骤:

  1. 制作Dockerfile
  2. 通过Dockerfile生成docker镜像
  3. 将docker镜像上传至docker hub

image-20250120154315541

制作Dockerfile

制作dockerfile的步骤原理是,通过命令告诉docker,需要什么样的环境作为基础,之后执行什么样的命令

# 使用官方 Python 运行时作为父镜像
FROM python:3.8-slim-buster

# 设置工作目录
WORKDIR /app

# 将当前目录内容复制到容器的 /app 目录下
ADD . /app

# 安装 flask
RUN pip install flask

# 运行 app.py 时,Flask 服务将会启动
CMD ["python", "app.py"]

在当前目录下新建app.py 文件, 之后打包时会上传到工作目录

from flask import Flask, request
import base64
import os

app = Flask(__name__)

req_token = os.environ.get('TOKEN', 'brown')

@app.route('/')
def download_file():
    token = request.args.get('token')
    if token == req_token:  # 如果用户传入的token值与要求的一致
        path = '/dingyue'
        with open(path, 'rb') as file:
            file_content = file.read()
            base64_content = base64.b64encode(file_content).decode('utf-8')
            return base64_content
    else:
        return "Invalid token"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=10015)

这里使用的os参数来获取系统环境变量,在docker 运行的时候,可以通过-e参数来传入

生成docker镜像

docker build -t your_image_name .
请注意,你需要将your_image_name替换为你想要的镜像名。

上传至docker hub

首先,如果你还没有Docker Hub账户,你需要去Docker Hub注册一个。

在你的本地机器上,使用Docker CLI登录到Docker Hub。在命令行中输入以下命令并回车:

docker login
然后按照提示输入你的Docker Hub用户名和密码。

在本地为你的镜像打标签,以便上传。你需要使用docker tag命令,格式如下:

docker tag local_image:tagname yourhubusername/remote_image:tagname

docker tag getnode_webui:latest brownbearye/getnode_webui:latest
其中,local_image:tagname是你本地镜像的名字和标签,yourhubusername是你的Docker Hub用户名,remote_image:tagname是你想在Docker Hub上使用的镜像名和标签。

使用docker push命令将你的镜像推送到Docker Hub:

docker push yourhubusername/remote_image:tagname
请注意,只有公开的Docker镜像才能被其他人看到和下载。如果你想要私有的Docker镜像,你可能需要购买Docker Hub的付费计划。
THE END