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

相关推荐
tellmewhoisi6 小时前
项目部署docker(指令解析和docker-compose基础指令)
docker·容器
DisonTangor7 小时前
【字节拥抱开源】Lance: 多任务协同的统一多模态建模
人工智能·ai作画·开源·aigc
dinl_vin7 小时前
FastAPI 系列 ·(十二):生产部署——Docker + 配置管理(系列完结)
docker·容器·fastapi
看到代码头都是大的7 小时前
CentOS环境下手动升级openssl、openssh
linux·运维·centos
蠢货爱好者9 小时前
Docker基础操作
运维·docker·容器
山人在山上9 小时前
docker zlmediakit 部署
docker·zlmediakit
hopsky10 小时前
phoenix docker 启动
运维·docker·容器
ForgeAI码匠11 小时前
Maven 多模块项目如何避免越写越乱?Forge Admin 的模块边界实践
java·人工智能·开源·maven
X54先生(人文科技)12 小时前
关于“778之问”与“X54之答”的文明范式校验报告
人工智能·架构·开源·开源协议