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.
相关推荐
亿牛云爬虫专家31 分钟前
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
分布式·python·架构·kubernetes·爬虫代理·监测·采集
乌鸦不像写字台2 小时前
【docker部署】在服务器上使用docker
服务器·docker·容器
蹦蹦跳跳真可爱5895 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij5 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
雷羿 LexChien5 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
艾伦_耶格宇5 小时前
【docker】-1 docker简介
运维·docker·容器
敲键盘的小夜猫6 小时前
LLM复杂记忆存储-多会话隔离案例实战
人工智能·python·langchain
高压锅_12206 小时前
Django Channels WebSocket实时通信实战:从聊天功能到消息推送
python·websocket·django
IvanCodes6 小时前
二、Docker安装部署教程
docker·容器
胖达不服输7 小时前
「日拱一码」020 机器学习——数据处理
人工智能·python·机器学习·数据处理