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.
相关推荐
用户298698530142 分钟前
Python 自动化处理 Word 页眉页脚的几种典型场景
后端·python·api
方便面不加香菜4 分钟前
Docker Container -- 容器命令详解
运维·docker·容器
終不似少年遊*15 分钟前
【安全业务Agent】从场景到编排
python·react.js·ai·langchain·agent·安全架构·工作流
AKA__Zas23 分钟前
接口自动化测试(1.0 初认识
python·ci/cd·学习方法
Dragon~Snow1 小时前
Centos Stream10 安装 MySQL-9.7.2-linux-glibc2.28-x86_64.tar
linux·mysql·centos
用户0332126663671 小时前
使用 Python 在 Excel 文档中添加水印
python·excel
高洁011 小时前
自然语言处理的技术演进与核心任务
人工智能·python·深度学习·机器学习·迁移学习
vipxieliang1 小时前
Python 类型注解与 mypy:提升代码可维护性
python
skywalk81632 小时前
不用 SSH、不装数据库:我用 1 个 Python 脚本 + Git,把 15 个 AI Agent 串成了一条流水线
数据库·人工智能·python·ssh·集群
天天被压力2 小时前
【A股分钟级高频数据完全手册 #02】Python调用股票1分钟数据接口:Pro版最新分时取数与字段解析
java·人工智能·python