一、安装docker

1.更新yum包,并安装需要的软件包,yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖

yum -y upgrade
yum install -y yum-utils device-mapper-persistent-data lvm2

2.设置 yum 源(以下任选其一)

yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

备注:安装前一定卸载干净之前安装过的docker(没安装过不用执行以下命令)

yum remove docker  docker-common docker-selinux docker-engine

3.查看docker可用版本

yum list docker-ce --showduplicates | sort -r

4.选择版本安装docker:yum install docker-ce-版本号

yum -y install docker-ce-17.12.1.ce-1.el7.centos

5.启动docker

systemctl start docker

二、安装 mysql

1.拉取mysql5.7镜像(mysql版本自行选择)

docker pull mysql:5.7

2.查看拉取的mysql镜像,确保镜像拉取成功并且存在

docker images

3.创建宿主机映射目录 (容器文件映射到当前宿主机,不用直接操作mysql容器的配置文件)

mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf

进到root/mysql/conf下创建mysql配置文件(修改mysql配置时,改当前创建的文件即可)

cd /root/mysql/conf
touch my.cnf

修改my.cnf文件

[mysqld]
#设置日志时间与系统时间一致(否则就算容器时间与系统时间一致,日志时间还是晚8小时,所以必须配置)
log_timestamps=SYSTEM
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

4.创建mysql容器,将数据,日志,配置文件映射到宿主机

-v命令是将容器内部配置文件挂载到宿主机 (后续修改配置文件直接修改绑定的宿主机文件,不用进入到容器内部修改,因为很麻烦,肯定没有我们操作宿主机快)

-p命令是将容器内的端口映射到宿主机(这样就能通过宿主机ip(就是服务器公网ip)+映射的这个端口直接跟当前容器通信,后续再聊容器相互之间的通信)

这两个基本命令,容器比较常用,后续还会用到,就不再阐述了

-v /etc/localtime:/etc/localtime 系统时间挂载到容器,解决容器时间晚8小时的问题

docker run -p 3306:3306 --name mysql -v /etc/localtime:/etc/localtime -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=设置的密码 -d mysql:5.7

5.用工具测试连接

如果连接不上(确保防火墙是否端口开放,确保服务器安全策略组端口是否开放)

三、安装redis

1.拉取redis镜像

docker pull redis

2.创建挂载目录及配置文件

mkdir -p /root/redis/data
cd /root/redis
touch redis.conf

3.编辑redis配置文件(复制以下内容到redis.conf,注意修改文件内redis启动密码)

protected-mode no
port 6379
tcp-backlog 511#设置redis密码
requirepass 你的密码timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

4.启动redis容器

--log日志处理

redis redis-server /etc/redis/redis.conf 加载配置文件启动

--appendonly yes 开启redis持久化

docker run --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /etc/localtime:/etc/localtime -v /root/redis/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes

5.用工具测试连接

如果连接不上(确保防火墙是否端口开放,确保服务器安全策略组端口是否开放)

三、安装nginx(重中之重,一定仔细一步步走)

1.拉取镜像并创建nginx宿主机挂载目录

docker pull nginx
# 创建挂载目录
mkdir -p /root/nginx/conf
mkdir -p /root/nginx/log
mkdir -p /root/nginx/html

2.复制启动容器内的配置文件到宿主机,并删除容器重新设置参数再启动

# 生成容器
docker run --name nginx -p 80:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /root/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /root/nginx/# 删除正在运行的nginx容器
docker rm -f nginx#设置好参数重新运行
docker run -p 80:80 -p 443:443 --name nginx -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/conf/conf.d:/etc/nginx/conf.d -v /root/nginx/log:/var/log/nginx -v /root/nginx/html:/usr/share/nginx/html -d nginx:latest

3.至此通过宿主机ip(安全策略组以及防火墙80和443端口一定要开放)已经能访问到nginx页面。后面再聊通过配置文件部署前端dist以及代理后端接口

四、配置远程访问docker的密钥,方便后续通过IDEA docker插件来操作docker(方便nginx挂载,不用次次命令到容器内部操作)不配置密钥直接开放端口访问的话,服务器会被攻击的体无完肤,说多了都是泪

原文地址:https://blog.csdn.net/qq_2453548221/article/details/126260893原文作者写的非常详尽,大家可以先去看看(以下是搬运的原文)

1.一定细心一步步看清楚走,否则最后连接不上!!!

#1.先在/usr/local目录下创建个文件夹,这里取名叫ca,然后进入ca文件夹中
mkdir -p /usr/local/ca
cd /usr/local/ca#2.执行下面的命令,需要输入密码,自由指定,两次输入保持一致并记住即可.
openssl genrsa -aes256 -out ca-key.pem 4096#3.根据提示分别输入国家,省份,城市,组织,等一系列信息(可以随便输,无所谓的其实)
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem#4.生成server-key.pem,输入下面命令敲回车即可.
openssl genrsa -out server-key.pem 4096#5.把下面的$Host换成你自己服务器外网的IP或者域名:比如:openssl req -subj “/CN=192.168.1.0” -sha256…
openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr#6.配置白名单,也就是你接下来要允许那些ip可以连接到服务器的docker,因为已经是ssl连接,所以我推荐配置0.0.0.0,也就是所有Ip都可以连接(但只有拥有证书的才可以连接成功),这样配置好之后公司其他人也可以使用.如果你不想这样,那你可以配置Ip,用逗号分隔开.下面的$Host依旧是你服务器外网的IP或者域名,请自行替换.(这里如果你使用的是服务器Ip的话,请将前面的DNS换成IP,否则配下来连接还是不会成功,如果你使用的是服务器域名,那么就用DNS就可以了)
echo subjectAltName = DNS:$HOST,IP:0.0.0.0 >> extfile.cnf#7.执行下面语句:
echo extendedKeyUsage = serverAuth >> extfile.cnf#8.执行下面语句,然后输入前面设置过的密码,用以生成ca-key.
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf#9.生成客户端所需的key.pem,依旧在该服务器下执行下面命令,到时候把生成好的几个公钥私钥拷出去即可.
openssl genrsa -out key.pem 4096
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
echo extendedKeyUsage = clientAuth >> extfile.cnf#10.生成cert.pem,需要输入前面设置的密码:
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
rm -v client.csr server.csr#11.修改权限:
chmod -v 0400 ca-key.pem key.pem server-key.pem
chmod -v 0444 ca.pem server-cert.pem cert.pem#12.归集服务器证书:
cp server-*.pem  /etc/docker/
cp ca.pem /etc/docker/#13.修改docker配置:
vi /lib/systemd/system/docker.service将ExecStart=/usr/bin/dockerd
替换为:
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock#14.重新加载daemon并重启docker
systemctl daemon-reload
systemctl restart docker #15.然后使用工具比如winscp,或者xshell,把你当前所在的/usr/local/ca文件夹里的拷贝到你本地电脑的某个文件夹里

2.先安全策略组和防火墙开放2376端口(如果防火墙是关闭状态则不用处理防火墙)再idea docker插件选择密钥文件夹连接,现在就不怕被攻击了

下载docker插件,然后配置

最终就能可视化docker的镜像还有容器

以上就能通过插件直接挂载nginx的前端dist文件目录,上图左侧是宿主机目录,右侧是容器内部目录(dist挂载目录宿主机随便配置,容器内的地址必须在   /usr/share/nginx/   下面才能生效)

未完待续敬请期待!有不明白的同学请留言,一定给你安排明白

linux(centos7) docker配置前后端分离项目环境相关推荐

  1. Docker部署前后端分离项目

    云主机 centos7 中Docker容器式部署前后端分离项目Django+Vue.js 前期准备: Docker安装Docker - CentOS Docker 软件包和依赖包已经包含在默认的 Ce ...

  2. 基于docker部署前后端分离项目--->docker+Dockerfile+vue+nginx+uwsgi+django+socket+负载均衡

    1. 介绍 本文基于阿里云服务器,安装的ubuntu20.04系统 适用于conten7.5系列 适用于ubuntu16.04以上系列 vue已经打包完成,所以不能使用我的vue项目 2. 部署 部署 ...

  3. (一)专题介绍:移动端安卓手机改造成linux服务器linux服务器中安装软件、部署前后端分离项目实战

    快捷目录 前言 一.涉及到的相关技术简介 二.具体实现过程及踩坑杂谈 1.安卓手机改造成linux系统实现方案 2.改造后的手机Linux中软件的安装 3.手机Linux中安装MySQL5.7踩坑实录 ...

  4. (五)Debian Linux中部署Spring Boot + Vue的前后端分离项目详细过程(arm64/aarch64架构下)

    专题系列往期文章目录 (一)移动端安卓手机改造成linux服务器&Linux中安装软件踩坑历险记 (二)Debian Linux系统中安装oracle JDK1.8详细过程(arm64/aar ...

  5. Django+vue+ElementUi 实现前后端分离项目

    目录 一. 环境搭建 二. Django 2.1 创建项目 2.2 数据库配置 2.3 创建模型并且设计数据库表 Django app :myApp 2.4 创建新增和查询的接口 三.Vue 3.1. ...

  6. 在Docker 上完成对Springboot+Mysql+Redis的前后端分离项目的部署(全流程,全截图)

    本文章全部阅读大约2小时,包含一个完整的springboot + vue +mysql+redis前后端分离项目的部署在docker上的全流程,比较复杂,请做好心理准备,遇到问题可留言或则私信 目录 ...

  7. 【Docker】1、 前后端分离项目 下载启动运行

    人人开源前后端分离项目下载与配置 文章目录 人人开源前后端分离项目下载与配置 前后端分离框架介绍 后端项目下载与配置 1.renren-fast后台项目介绍 2.开发环境搭建 3.下载后端renren ...

  8. RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 多机版本)

    接上一篇:RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 单机版本) 前端和后端不在一个服务器上,如何部署呢? 文章目录 1. 服务器和软件部署 2. 后端部署 3 ...

  9. RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 单机版本)

    文章目录 一.软件安装部署 1. 安装jdk 2. mysql8安装部署 3. redis安装 4. nginx 安装部署 5. 克隆项目 二.后端项目 2.1. 修改数据库连接 2.2. 修改Red ...

最新文章

  1. 「表面光鲜,实则搬砖」,机器学习社区自嘲不为人知的AI工程师真相
  2. jquery 幻灯片图像切换效果
  3. timerpickerview使用_详解iOS App中UIPickerView滚动选择栏的添加方法
  4. python大小写转换if_python代码实例大小写转换,首字母大写,去除特殊字符
  5. 解析发展方向,定格人生道路
  6. get请求可以传body吗_都9102年了,GET和POST的区别掌握了没有?
  7. noi.ac #543 商店
  8. 学习vi和vim编辑器(1):vi文本编辑器
  9. 190906二级刷题水果与小女孩
  10. Oracle的配置文件
  11. 面试了上百位性能测试后,我发现了一个令人不安的事实
  12. 大数据后从此再无隐私_0-2输球后,恒大再迎2大坏消息,2项数据很尴尬,补时还后场倒脚...
  13. 另类windows与ubuntu共享实现
  14. R语言实现地理探测器的流程及代码
  15. ug如何导入excel数据点_ug怎么导入 点数据库
  16. C如何简单的读写文件?二进制文件如何读写?如何移动文件指针?
  17. 追梦App系列博客——后端架构篇
  18. 命令行查看基金实时涨跌(附完整代码)
  19. 华为云CDN,无忧畅享网络
  20. 在windows中桌面显示itunes音乐滚动歌词

热门文章

  1. 学计算机的怎样记笔记,计算机考研经验 怎样记笔记才是有效的?
  2. 基于STM32智能窗帘设计proteus仿真
  3. 从《美国工厂》看外企文化
  4. oracle 10g ins_rdbms.mk,10.2 for linux的安装又出现了这个ins_rdbms.mk的错误
  5. 10 Flask mega-tutorial 第10章 QQ邮箱 电子邮件支持 Email Support
  6. 如何清除您的Internet Explorer浏览历史记录
  7. python从0开始学编程第四天第3讲_从零开始学习PYTHON3讲义(四)让程序更友好
  8. 干货 | 携程 SOA 的 Service Mesh 架构落地
  9. 写在5G边缘:2B本质是2C
  10. itextpdf通过pdf模板生成pdf文件