Linux使用docker集群部署

目录

一,环境准备

1.1.安装docker

1.2.配置镜像就加速器

二,docker部署

2.1.创建网络

​编辑

2.2.安装redis

2.3.安装MySQL

 2.4.安装JDK,TomCat及部署后台项目

2.5.安装Nginx及配置静态资源


一,环境准备

1.1.安装docker

安装yum-util, 该包提供yum-config-manager功能

yum install -y yum-utils

设置docker源(阿里仓库)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 安装docker, yum install docker-ce-版本号

yum install docker-ce-18.06.3.ce

查看docker版本号,验证

docker version

启动docker

systemctl start docker

设置开机启动

systemctl enable docker
1.2.配置镜像就加速器

默认的情况下docker会从docker hub中查找或下载镜像,在国内会比较慢。可以使用阿里的镜像加速器来提高速度。
具体操作步骤如下:

首先需要有一个淘宝或支付宝的账号,登录阿里云阿里云-计算,为了无法计算的价值 (aliyun.com)icon-default.png?t=N7T8https://www.aliyun.com/

查看阿里镜像加速器地址

cat /etc/docker/daemon.json

这样就配置好了

二,docker部署

2.1.创建网络
# 搭建net-ry局域网,用于部署若依项目
docker network create net-ry --subnet=172.68.0.0/16 --gateway=172.68.0.1

【注】

                关闭宿主机的防火墙,否者容器内部的MySQL、redis等服务,外部访问不了;开放端口3306、6379端口也没用

查看防火墙状态

systemctl status firewalld

关闭防火墙

systemctl stop firewalld

关闭防火墙后必须重启docker,否者出现如下错误

docker: Error response from daemon: driver failed programming external connectivity on endpoint ruoyi-admin (399a34630e6ef8e4ed7cf20d46b9654c8d535d0fe44ceadebf8bd605d3da35b8):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.68.0.4:8080 ! -i br-c34635070c6f: iptables: No chain/target/match by that name.

重启docker

systemctl restart docker
2.2.安装redis
# 创建目录
mkdir -p /data/redis/{conf,data}

redis.conf修改

1. 允许redis外地连接

    #bind 127.0.0.1改成为 bind 0.0.0.0

2. 开启redis验证(可选)

    requirepass sasa

3. 开启redis数据持久化(可选)

    appendonly yes 

上传redis.conf文件到/data/redis/conf文件夹中

启动容器服务

docker run -itd --name zking-redis -p 6379:6379 \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
--privileged=true --restart=always \
--network net-ry redis \
redis-server /etc/redis/redis.conf

【解释】

  • -itd:以交互模式运行容器,并分配伪终端,然后将其与终端分离。
  • --name zking-redis:将容器命名为"zking-redis"。
  • -p 6379:6379:将主机的6379端口映射到容器中的6379端口,用于Redis。
  • -v /data/redis/conf/redis.conf:/etc/redis/redis.conf:将主机上的Redis配置文件挂载到容器中。
  • -v /data/redis/data:/data:将数据卷从主机挂载到容器中。
  • --privileged=true:赋予容器扩展权限。
  • --restart=always:如果容器停止,则自动重新启动。
  • --network net-ry:将容器连接到名为"net-ry"的特定Docker网络。
  • redis:指定用于容器的Docker镜像。redis-server /etc/redis/redis.conf:使用提供的配置文件运行Redis服务器。

这样redis就准备好了

测试

进入刚刚创建好的redis容器

docker exec -it a2efbc3 /bin/bash

使用whereis查找redis-cli的位置

进入该目录

cd  /usr/local/bin

查看该目录

ls

执行redis-cli进入redis

执行ping如果是PONG就表示服务正常

到这里redis就算是安装好了

2.3.安装MySQL
# 创建文件夹
mkdir -p /data/mysql/{conf,data}

上传my.cnf文件到/data/mysql/conf文件夹中

启动容器服务

docker run -d --name zking-mysql --network net-ry  \
-v /data/mysql/conf/my.cnf:/etc/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
--privileged=true --restart=always \
-e MYSQL_ROOT_PASSWORD=sasa -p 3306:3306 \
mysql/mysql-server:5.7

【解释】

这个命令是在Docker中运行一个MySQL 5.7容器,并命名为zking-mysql。

容器将连接到net-ry网络。

MySQL配置文件my.cnf将从主机的/data/mysql/conf目录挂载到容器的/etc/my.cnf目录。

MySQL数据目录将从主机的/data/mysql/data目录挂载到容器的/var/lib/mysql目录。

容器将以特权模式运行,并且设置为总是重启。

MySQL的root密码将设置为sasa,并且容器的3306端口将映射到主机的3306端口。

在这个命令中

-d标志表示容器将在后台运行。-v标志用于挂载卷。

--privileged=true表示容器将以特权模式运行,

--restart=always表示容器将总是重启。

-e标志用于设置环境变量,这里设置了MySQL的root密码。

-p标志用于将容器端口映射到主机端口

进入MySQL容器

docker exec -it ba90df /bin/bash

给用户赋予外部访问权限

登录MySQL

mysql -u root -p

密码就是上面配置好的

执行以下代码赋予权限

grant all privileges on *.* to root@'%' identified by 'sasa' with grant option;

刷新权限

flush privileges; 

使用数据库管理工具测试一下

成功就表示配置完成了

初始化数据库脚本

根据项目的配置创建数据库

到此MySQL就准备完成了

 2.4.安装JDK,TomCat及部署后台项目

创建项目部署目录

mkdir ruoyi-admin

进入该目录

cd ruoyi-admin

上传后台jar包及dockerfile

ruoyi-admin为镜像名称,开始制作镜像

docker build -t ruoyi-admin .

进入容器

docker exec -it ruoyi-admin /bin/bash

运行镜像

docker run -itd --name ruoyi-admin --network net-ry -p 8080:8080  ruoyi-admin

测试看看日志信息是否正常

# 进入容器
docker exec -it ruoyi-admin /bin/bash

进入日志目录

cd /home/ruoyi/logs

使用ls -l 查看日志的基本信息

error.log大小为0表示没有报错

测试TomCat

在浏览器里面输入192.168.11.137:8080出现了一下样式就表示没问题

2.5.安装Nginx及配置静态资源
# 创建目录
mkdir -p /data/nginx/{conf,html}

上传nginx.conf至/data/nginx/conf文件夹中

启动容器服务

docker run -itd --name zking-nginx --network net-ry -p 80:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/html:/usr/share/nginx/html \
--privileged=true --restart=always \
nginx

【解释】

  1. docker run: 运行一个新的容器
  2. -itd: 分别表示分配一个伪终端(interactive)、保持容器运行状态(detach)以及使用交互模式(tty)
  3. --name zking-nginx: 指定容器的名称为 zking-nginx
  4. --network net-ry: 将容器连接到名为 net-ry 的网络
  5. -p 80:80: 将容器的端口 80 映射到主机的端口 80,允许通过主机的端口访问 nginx 服务
  6. -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf: 将主机上的 /data/nginx/conf/nginx.conf 文件挂载到容器内的 /etc/nginx/nginx.conf,用作 nginx 的配置文件
  7. -v /data/nginx/html:/usr/share/nginx/html: 将主机上的 /data/nginx/html 目录挂载到容器内的 /usr/share/nginx/html,作为 nginx 的网页内容目录
  8. --privileged=true: 启用容器的特权模式,允许容器访问主机的设备
  9. --restart=always: 设置容器在退出时总是重新启动
  10. nginx: 基于 nginx 镜像创建容器

通过这个命令,您可以创建一个名为 zking-nginx 的 nginx 容器,配置了指定的网络、端口映射、挂载配置文件和网页内容目录,并启用了特权模式和自动重启。

根据配置将静态资源上传至html文件夹

测试

直接在浏览器中输入服务器的IP地址http://192.168.11.137/出现主页就表示配置完成了

  • 25
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值