您现在的位置是:首页 > 正文

docker部署前后端分离项目

2024-02-01 01:51:05阅读 6

一、操作系统准备:centos7.8

二、docker环境准备:参考:Install Docker Engine on CentOS | Docker Documentation

(1)卸载之前版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

(2)安装docker仓库及工具

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

如速度慢可切换国内的镜像,比如阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

(3)安装docker引擎

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

(4)启动docker

sudo systemctl start docker

可通过docker version查看版本。

三、docker compose准备工作,参考:Install Docker Compose | Docker Documentation

docker compose实现对docker容器的编排,能实现多容器的快速部署。

(1)下载最新的docker compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

(2)文件授权

sudo chmod +x /usr/local/bin/docker-compose

可通过docker-compose –version查看版本。

四、镜像构建 使用dockerfile进行构建,镜像中不同的地方应该写在这里,这样才能区别官方的镜像。

(1)redis镜像构建

# 基础镜像
FROM redis
# author
MAINTAINER haoyu

# 挂载目录
VOLUME /home/haoyu/redis
# 创建目录
RUN mkdir -p /home/haoyu/redis
# 指定路径
WORKDIR /home/haoyu/redis
# 复制conf文件到路径
COPY ./conf/redis.conf /home/haoyu/redis/redis.conf

(2)mysql镜像构建

# 基础镜像
FROM mysql:5.7
# author
MAINTAINER haoyu

# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/

(3)nginx镜像构建

# 基础镜像
FROM nginx
# author
MAINTAINER haoyu

# 挂载目录
VOLUME /home/haoyu/projects/haoyu-ui
# 创建目录
RUN mkdir -p /home/haoyu/projects/haoyu-ui
# 指定路径
WORKDIR /home/haoyu/projects/haoyu-ui
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制html文件到路径
COPY ./html/dist /home/haoyu/projects/haoyu-ui

(4)后台程序构建

# 基础镜像
FROM java:8
# author
MAINTAINER haoyu

# 挂载目录
VOLUME /home/haoyu
# 创建目录
RUN mkdir -p /home/haoyu
# 指定路径
WORKDIR /home/haoyu
# 复制jar文件到路径
COPY ./jar/*.jar /home/haoyu/haoyu.jar
# 启动应用
ENTRYPOINT ["java","-jar","haoyu.jar"]

五、docker compose 编排

类如:

version : '3'
services:
  haoyu-mysql:
    container_name: haoyu-mysql
    image: mysql:5.7
    build:
      context: .
      dockerfile: mysql-dockerfile
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/logs:/logs
      - ./mysql/data:/var/lib/mysql

注意:
数据库mysql地址需要修改成haoyu-mysql
缓存redis地址需要修改成haoyu-redis

六、构建docker服务

docker-compose build

七、启动docker容器

docker-compose up -d

如以上正常,即可看到界面。

网站文章

  • Python之异常设计(一)

    一 定义 异常分为两类:一类是自动触发异常如除零错误;另一类是通过raise触发。 二 为什么要使用异常 当程序运行时,如果检测到程序错误,Python就会引发异常,我们可以在程序中使用try语句捕获异常,并对异常进行处理。如果我们不做异常的捕获,异常就会一直往上层抛出,直到顶层Python的默认异常处理器,默认异常处理器将会停止程序并打印异常,这通常会引起程序崩溃,造成不好的用户体验,...

    2024-02-01 01:50:35
  • Redis 高可用之持久化

    Redis 高可用之持久化

    在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务( 如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。

    2024-02-01 01:50:29
  • 14. 二分查找

    DescriptionFor a given sorted array (ascending order) and a target number, find the first index of t...

    2024-02-01 01:50:23
  • 大数据—Hadoop生态圈

    大数据—Hadoop生态圈

    前言 整理了一下目前常用的hadoop组件,后续将会对这些组件的具体应用场景和使用细节进行展开分析。如果大家发现有更好的建议欢迎大家在下方留言。

    2024-02-01 01:49:55
  • 1021 个位数统计 (15 分)

    1021 个位数统计 (15 分) 给定一个 k 位整数 N=dk−1 10k−1 +⋯+d1 101 +d0 (0≤di ≤9, i=0,⋯,k−1, dk−1 >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过...

    2024-02-01 01:49:47
  • [ C++ ] STL _ Vector使用及其模拟实现

    [ C++ ] STL _ Vector使用及其模拟实现

    [ C++ ] STL _ Vector使用及其模拟实现

    2024-02-01 01:49:41
  • 移动端与pc端的区别

    第一: PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器使用的都是webkit内核,所以说做移动端开发,更多考虑的应该是手机...

    2024-02-01 01:49:33
  • 解决redis \xac\xed\x00\x05t\x00\x04 自定义RedisTemplate

    通过自定义RedisTemplate解决 package com.springboot.config; import com.fasterxml.jackson.annotation.JsonAuto...

    2024-02-01 01:49:01
  • Absence event can be deleted after finalize

    Set Up HRMS>Product Related>Global Payroll & Absence Mgmt>Absence Management>CountryTab: Event EntryThere are three delete options available:Delete Option "All Events"Delete Option "A...

    2024-02-01 01:48:55
  • 【Java|基础篇】内部类

    【Java|基础篇】内部类

    内部类就是在一个类中再定义一个类,内部类也是封装的体现.它可以被声明为public、protected、private 或默认访问控制符。内部类可以访问外部类的所有成员变量和方法,包括私有成员。内部类...

    2024-02-01 01:48:26