使用docker完整搭建前后端分离项目

1、docker的优势,为啥用docker

在这里插入图片描述

2、docker的核心概念

镜像【Image】- 只读模板
容器【Container】- 运行镜像的一个外壳,相当于一个独立的虚拟机
仓库【repository】- 镜像的管理工具,可公开,可私有;类似git仓库

3、centos安装docker

查看是否有docker服务

docker --version
sudo systemctl status docker

-方便添加软件

sudo yum install -y yum-utils

-添加Docker的官方软件源

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

-刷新yum源

sudo yum update

-安装dockery引擎

sudo yum install docker-ce

-启动docker

sudo systemctl start docker

-centos避免每次使用docker都要切换到特权身份

sudo groupadd docker (提示存在执行执行下一行)
sudo usermod -aG docker $USER

-重启docker

sudo systemctl restart docker

-完成这些步骤后,你就可以直接运行Docker命令而不需要sudo,安装完毕

docker -ps 

4、安装常用软件镜像

  • nginx安装
docker run -d -p 80:80  --name nginx nginx
  • mysql安装
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=wuyongqiang -d mysql:5.7
  • reids安装
docker run -d --name redis redis
  • jdk 安装
docker run -d --name jdk openjdk:8

5、使用nginx镜像部署Vue项目

执行命令(一行命令):

docker run 
 -d -p 8080:80 --name ruoyi-web   
 -v /data/conf/nginx.conf:/etc/nginx/nginx.conf
 -v /data/logs/nginx:/var/log/nginx 
 -v /data/web/ruoyi-web/dist:/usr/share/nginx/html 
nginx:latest

执行命令解释:
docker run
#将宿主机的8080端口映射容器的80端口
-d -p 8080:80
#容器命名为mr-web
–name mr-web
#将nginx的配置挂载在宿主机的/data/conf/nginx.conf 下
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf
#将nginx的日志输出到宿主机的/data/logs/nginx目录下
-v /data/logs/nginx:/var/log/nginx
#将要部署的项目挂载在宿主机的/data/web/dist下
-v /data/web/dist:/usr/share/nginx/html
#使用的nginx镜像版本声明
nginx:latest

/home/mr-web/conf nginx.conf配置文件

#user  nobody;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            # 这里重点关注以下:这里是容器内部地址
            root   /usr/share/nginx/html;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
            error_page 404 index.html;
        }
        #和上面vue文件对应上,访问后端都加mr-api
        #这里看情况,有的vue项目访问后端接口不需要代理
        location /dev-api {
            #rewrite ^/rest/(.*) /$1 break;
            proxy_pass http://124.223.59.141:8081;
            #proxy_cookie_path / /rest;
            proxy_redirect off;
            #client_max_body_size 500m;
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

6、使用JDK镜像部署java项目

编写dockerfile文件,制作java-service的镜像

#基础镜像
FROM openjdk:8
#将应用jar挂在到容器内:根服务器的相对路径,容器内的绝对路径
COPY app.jar /data/app.jar
#指定工作目录
WORKDIR /data
#暴露对外端口
EXPOSE 8080
#应用执行命令
CMD ["java", "-jar", "app.jar"]

在dockerfile所在目录下执行镜像构建命令,构建镜像:java-service-name

#构建镜像
docker build -t java-service-name

启动容器运行该镜像

docker run -d java-service-name  -p 8080:8080 --name java-app  java-service-name
  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值