开源电商erp系统启航电商ERP系统centos Docker部署

一、部署Docker

Docker安装

1、更新系统

yum update

2、安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3、添加 Docker YUM 软件源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4、安装 Docker

sudo yum install docker-ce docker-ce-cli containerd.io

5、启动 Docker 服务

复制代码
systemctl status docker
systemctl start docker
systemctl enable docker

6、验证安装

docker --version

Docker常用命令

  • 查看已安装镜像

    docker images

  • 下载镜像

    docker pull tomcat:8.5.84[镜像名:版本号]

  • 运行镜像

    docker run -d redis其中-d表示在后台运行

  • 删除镜像、

docker rmi cfb42a7627ea

  • 查看正在运行的容器

    docker ps

  • 查看所有的容器

    docker ps -a

  • 进入容器

    docker exec -it 2c66a2604c61 bash

  • 停止容器

    docker stop e20d261fc976

  • 开启容器

    docker start e20d261fc976

  • 删除容器

    docker rm [ID]

  • 搜索镜像

    docker search <keyword>

二、环境配置

2.1 MySQL

  • 拉取MySQL镜像

    docker pull mysql

  • 运行 MySQL 容器

    docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=Qihangec@168* -d -p 3307:3306 mysql

    • --name my-mysql:为容器指定一个名称。
    • -e MYSQL_ROOT_PASSWORD=Qihangec@168*:设置 MySQL 的 root 用户密码。
    • -d:在后台模式下运行容器。
    • -p 3307:3306:将主机的3307端口映射到容器的3306端口。
  • 连接到 MySQL 容器

    docker exec -it my-mysql bash

  • 进入 MySQL 命令行

    mysql -uroot -p

    • 修改远程访问密码

      ALTER USER 'root'@'%' IDENTIFIED BY 'Qihangec@168*';

      flush privileges;

2.2 Redis

  • 拉取 Redis 镜像

    docker pull redis

  • 运行 Redis 容器

    docker run -d -p 6378:6379 --name my-redis redis

2.3 Nacos

  • 拉取Nacos镜像

    docker pull nacos/nacos-server

  • 运行 Nacos 容器

    docker run --name nacos-server -e PREFERRED_NAMING_USE_RPC=true -e MODE=standalone -p 8849:8848 -d nacos/nacos-server

    docker run --name nacos-server -e MODE=standalone -p 8849:8848 -p 9848:9848 -d nacos/nacos-server

  • 访问 Nacos 控制台

    112.44.181.231:8849/nacos

Java项目读不到Docker Nacos配置

https://blog.csdn.net/hmq1350167649/article/details/122432510

https://blog.csdn.net/keypanj2ee/article/details/118725971

2.4 minio

三、运行项目

3.1 后端运行

制作Dockerfile
复制代码
FROM openjdk:17-jdk-slim

WORKDIR /app

COPY ecerp-api-0.2.0.jar .

CMD ["java", "-jar", "ecerp-api-0.2.0.jar"]
构建 Docker 镜像

docker build -t ecerpapi .

运行 Docker 容器

docker run --name ecerpapi -p 8081:8080 -d ecerpapi

3.2 前端Nginx运行

拉取nginx镜像

docker pull nginx

创建挂载目录
  • nginx_logs :日志文件目录/opt/qihangerp/nginx_logs
  • nginx_conf :配置文件目录/opt/qihangerp/nginx_conf
  • nginx_web :项目文件目录(这里可以存放web文件)/opt/qihangerp/nginx_web

​ 赋权限:

chmod 777 /opt/qihangerp/nginx_logs

chmod 777 /opt/qihangerp/nginx_conf

chmod 777 /opt/qihangerp/nginx_web

创建容器并挂载目录

挂载操作会直接将两个文件夹内容同步,若是直接用宿主机的空文件夹直接挂载到容器内部的配置文件目录上,会造成nginx容器配置文件目录被同步为空文件夹,进而导致容器启动失败。故我们需要先启动一遍容器,将初始配置拷贝出来。

启动容器并拷贝出nginx初始配置
  • 创建容器

docker run -itd --name nginx -p 80:80 nginx

  • 复制容器配置文件到宿主机
    docker cp nginx:/etc/nginx /opt/qihangerp/nginx_conf
删除容器
  • 删除容器

    docker rm -f nginx

修改Nginx配置(增加后台api转发)
复制代码
location /prod-api/ {
	proxy_set_header Host $http_host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header REMOTE-HOST $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass http://localhost:8080/;
}
重新运行容器并挂载目录

docker run -itd --name nginx -p 80:80 -v /opt/qihangerp/nginx_web:/usr/share/nginx/html -v /opt/qihangerp/nginx_conf/nginx:/etc/nginx -v /opt/qihangerp/nginx_logs:/var/log/nginx nginx

访问web

http://ip:80

相关推荐
猫头虎42 分钟前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
金刚猿1 小时前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong1 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
草梅友仁1 小时前
墨梅博客 1.4.0 发布与开源动态 | 2026 年第 6 周草梅周报
开源·github·ai编程
忆~遂愿2 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
70asunflower5 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
冬奇Lab5 小时前
一天一个开源项目(第16篇):Code2Video - 用代码生成高质量教学视频的智能框架
开源·aigc·音视频开发
一只大侠的侠6 小时前
Flutter开源鸿蒙跨平台训练营 Day7Flutter+ArkTS双方案实现轮播图+搜索框+导航组件
flutter·开源·harmonyos
聆风吟º6 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann