win10安装docker,打包python、java然后centos执行镜像

一、win10安装Docker Desktop

复制代码
docker官网(需要魔法)下载:https://www.docker.com/products/docker-desktop/
安装方法参考:https://blog.csdn.net/beautifulmemory/article/details/137970794
下载完毕后界面安装,不勾选

查看 Windows 上安装 Docker Desktop官方安装指南:

复制代码
https://docs.docker.com/desktop/install/windows-install/

1、提前新建I:\Docker\DockerInstaller目录,使用这行代码安装:

复制代码
"I:\Docker\docker-win10\Docker Desktop Installer.exe"  install --installation-dir="I:\Docker\DockerInstaller"

2、安装时不勾选:

3、最后显示Installation succeeded代表安装成功。

4、更改镜像存放地址:

5、在cmd命令里面查看docker版本

复制代码
docker -v
docker images

二、打包python项目

1、准备Dockerfile(在python项目的根目录下)


Dockerfile内容:

复制代码
# 使用官方Python镜像作为基础镜像
FROM python:3.12-slim

# 设置工作目录
WORKDIR /app

# 将当前目录的文件复制到工作目录
COPY . /app

# 安装依赖项(设置国内pip)
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install --no-cache-dir -r requirements.txt

# 暴露端口
EXPOSE 5000

# 启动应用程序(因为后面为了方便重新部署,直接到容器里面启动)
# CMD ["python", "main.py"]

2、进入到项目的根目录,开始打包镜像文件:

复制代码
# my-python-app是镜像名称
docker build -t my-python-app .

打包完成后:

3、导出镜像到本地磁盘:

复制代码
# 保存到自己磁盘中,my-python-app:latest为镜像名称和版本;lineCode.tar 为镜像tar
# 导出镜像(需要使用名字,不然导入的时候没有名字和版本,若需要直接修改:docker tag <image-id> <new-repository>:<new-tag>)
docker save my-python-app:latest -o I:\dockerFile\pythonProjects\lineCode.tar

4、导入到centos8的docker容器里面:

复制代码
docker load -i lineCode.tar

5、导入完成后:

6、运行:

复制代码
# -v 映射目录,-p 映射端口 --name 名称 --restart=always 自启 
docker run -v /usr/local/src/docker-python/:/app -p 5000:5000 -itd --name lineCode --restart=always my-python-app:latest

运行后查看:

7、进入到容器,直接输入命令执行python:

复制代码
# 进入到容器内部(容器名或者容器id):
docker exec -it lineCode /bin/bash

可以看到我门映射的目录,我门将python的源代码放入到line-code-20240816文件夹中

执行python项目:

复制代码
# 运行python项目(可能是python或python3看自己的python版本):
直接运行: python main.py
后台运行:nohup python main.py > output.log 2>&1 &

直接运行效果:

后台运行效果:


页面方案效果:

总结:

复制代码
1、在win10上直接打包好镜像,然后直接放到服务器上运行,很方便
2、运行镜像时映射了服务器上的目录,若我们改了代码,就不需要重新打镜像了(python的镜像很大,打包速度慢!),方便我们快速部署

三、打包java项目

1、项目的根目录准备Dockerfile

Dockerfile内容:

复制代码
FROM swr.cn-east-2.myhuaweicloud.com/xinchao-test/java:8

# 设置工作目录
WORKDIR /app

# 将当前目录的文件复制到工作目录
COPY . /app

# 安装依赖项


# 暴露端口
EXPOSE 8082

# 启动应用程序
# CMD ["java -jar", "trans-line.jar"]

3、打包镜像

复制代码
docker build -t trans-line-java .

4、运行

复制代码
# 映射目录
docker run -v /usr/local/src/docker-java/:/app -p 8082:8082 -itd --name transLine --restart=always trans-line-java:latest

5、进入容器内部

复制代码
docker exec -it transLine /bin/bash

6、将jar放入,然后运行:

复制代码
nohup java -jar trans-line.jar &

7、访问:

复制代码
访问地址:http://192.168.145.131:8082/  admin !Aa123456.
相关推荐
牛马工作号2 小时前
Mosquitto + ACME:从 Docker Compose 部署到 TLS 证书自动续期与加载
运维·docker·容器
IT_Octopus7 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
2603_965148117 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
CCblandy8 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
空空dream9 小时前
03 | 离线部署 FastAPI + Ollama(qwen2:0.5b):从 Docker 联调到 Kubernetes 验收
docker·ai·kubernetes·fastapi
Cc.Y9 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
拿本唠嗑AI研究9 小时前
本体工程实战指南:从建模到可维护的完整落地路径
java·人工智能·python·jena·ontology
Smoothcloud润云10 小时前
PyTorch推理服务模型热切换与失败回滚实战:降低版本更新中断
服务器·人工智能·pytorch·python·深度学习·gpu
jsjzsl210 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
2601_9548118210 小时前
机器视觉教学套件选型指南:五维技术参数对比与课程体系评估
python·数码相机