Docker-使用Dockerfile打包并且上传为公共镜像
整体步骤:
- 制作Dockerfile
- 通过Dockerfile生成docker镜像
- 将docker镜像上传至docker hub
制作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