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

相关推荐
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
谭震鸿14 小时前
Zookeeper集群搭建Centos环境下
分布式·zookeeper·centos
意疏15 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
墨鸦_Cormorant15 小时前
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
redis·nginx·docker
Code_Artist15 小时前
Docker镜像加速解决方案:配置HTTP代理,让Docker学会科学上网!
docker·云原生·容器
wanmei00216 小时前
Dockerfile复制目录进入镜像里
docker
inter_peng16 小时前
[Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
tcp/ip·docker·eureka
Linux运维日记17 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
lsjweiyi17 小时前
极简AI工具箱网站开源啦!
opencv·开源·微信支付·支付宝支付·百度ai·极简ai工具箱·ai图像处理