您的位置:首页 > 财经 > 金融 > 北京提供厦门网络推广_莱芜区招聘信息_百度客户服务中心_2022年大事热点新闻

北京提供厦门网络推广_莱芜区招聘信息_百度客户服务中心_2022年大事热点新闻

2025/4/2 17:09:36 来源:https://blog.csdn.net/weixin_45994787/article/details/146856543  浏览:    关键词:北京提供厦门网络推广_莱芜区招聘信息_百度客户服务中心_2022年大事热点新闻
北京提供厦门网络推广_莱芜区招聘信息_百度客户服务中心_2022年大事热点新闻

(一)问题描述

        我在一个python文件中写了若干计算方法,可以直接运行这个python文件,传入指定参数,得到计算结果。现在要将它和它的依赖包打包成一个docker镜像,方便在其他环境中使用。

(二)docker安装

        这一步可以直接参考菜鸟教程啦,很详细了:Windows Docker 安装 | 菜鸟教程

(三)构建镜像

1. 创建Dockerfile

        把python文件、依赖包清单(requirements.txt)、和Dockerfile放在一个文件夹里,例如你的文件结构可以是这样的:

my_project/
├── python文件.py
├── requirements.txt
└── Dockerfile

         Dockerfile默认是没有文件后缀的,你可以用txt格式创建它,保存后再把文件后缀删掉。

   WORKDIR 指令用于设置容器内的工作目录(working directory)。它是一个相对路径,用于指定后续指令(如 RUNCMDENTRYPOINT 等)的执行路径。COPY 指令用于将文件或目录从宿主机复制到容器内的指定路径。这两个路径通常是一样的,但在某些情况下,WORKDIRCOPY 指定的目录也可以不同。这通常是为了满足特定的文件组织需求或优化镜像结构。

# 使用官方Python镜像作为基础镜像
FROM python:3.12# 设置工作目录
WORKDIR /app# 将当前目录下的文件复制到容器的工作目录中
COPY . /app# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt# 指定容器启动时运行的命令
CMD ["python", "XXX.py"]

2. 创建requirements.txt文件

        这个文件记录的是依赖哪些包,可以通过这个命令生成这个文件:

pip freeze > requirements.txt

        这样生成的是当前pip下安装的所有包。如果你用的包不多,只有一小部分,也可以手动输入,格式就是包名==版本号,换行符作为分隔符(就是输入完一个包换个行,中间不用加任何其他符号)。

(四)构建Docker镜像

        在项目目录中打开终端,运行以下命令来构建Docker镜像(注意最后还有个点):

docker build -t 镜像名:标签 .

        这里如果构建失败了可以看我总结的这篇:Docker构建镜像报错ERROR [internal] load metadata for docker.io/library/XXX-CSDN博客

         参数说明:

  • -t 参数用于指定镜像的名称和标签(例如 my_calculator:v1)。

  • . 表示使用当前目录下的 Dockerfile

 (五)运行Docker容器 

        通过以下命令运行容器:

docker run --name 你的容器名 -d 镜像名:标签

         运行以下命令看容器是否正常运行

docker ps

        如果容器正常运行,你会看到类似以下的输出:

CONTAINER ID   IMAGE                COMMAND                  CREATED         STATUS         PORTS   NAMES
<container_id> gdelt_analysis:v1    "python gdelt_analysis…"   2 minutes ago   Up 2 minutes             gdelt_analysis_container

        如果需要停止和删除容器,可以运行以下命令:

docker stop gdelt_analysis_container
docker rm gdelt_analysis_container

(六)推送镜像到Docker Hub 

1. 注册docker hub账号

        Docker Hub官网:Docker Hub Container Image Library | App Containerization,如果进不去的话科学上网一下。

        注册账号这一步如果遇到问题可以看我总结的这篇:Docker Hub注册账号,多次更换邮箱仍显示Cannot use this email address, choose a different one.(邮箱不可用)问题解决-CSDN博客

2. 推送镜像

(1)方式一:Docker Desktop傻瓜操作(建议)

        如果报错unauthorized: incorrect username or password就是没登录。如果登录了还报这个错,关了重启。如果重启了还是报这个错,退了用IE浏览器登录,等待登录之后页面自己跳转。

(2) 方式二:命令行操作

        (a)登录Docker Hub:

docker login

        回车之后会让你输入账号和密码,但是我在输入账号之后,发现密码输入不进去,不知道是因为网络卡顿还是怎样。如果输不进去,就打开docker hub登录一下,登录完了直接执行下一步就行,这里就可以跳过了。

        (b)重新标记镜像

docker tag 镜像名:标签 用户名/镜像名:标签

        (c)推送镜像

docker push 用户名/镜像名:标签

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com