开源电商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

相关推荐
不会飞的小龙人2 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人2 小时前
Docker基础安装与使用
linux·运维·docker·容器
硬汉嵌入式3 小时前
《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压
vscode·matlab·开源
张3蜂3 小时前
docker Ubuntu实战
数据库·ubuntu·docker
说私域3 小时前
社群裂变+2+1链动新纪元:S2B2C小程序如何重塑企业客户管理版图?
大数据·人工智能·小程序·开源
workingman_li5 小时前
centos虚拟机异常关闭,导致数据出现问题
linux·运维·centos
不知 不知6 小时前
最新-CentOS 7安装1 Panel Linux 服务器运维管理面板
linux·运维·服务器·centos
染诗8 小时前
docker部署flask项目后,请求时总是报拒绝连接错误
docker·容器·flask
编程乐趣8 小时前
FluentCMS:基于 ASP.NET Core 和 Blazor 技术构建的开源CMS内容管理系统
后端·开源·asp.net
lilu88888888 小时前
小米Vela操作系统开源:AIoT时代的全新引擎
前端·开源