在Docker上部署Nacos+Redis+Yapi+MongoDB+Rabbitmq+Fastdfs,用Docker Compose管理容器 --快速上手,超详细
一.在linux上安装docker1.前提条件:操作系统CentOs7目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。使用 yum 安装(CentO
一.在linux上安装docker
1.前提条件:
操作系统CentOs7
目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。使用 yum 安装(CentOS 7下)Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
uname -r
3.10.0-327.el7.x86_64
2.安装 Docker
Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:
yum -y install docker-io
3.安装完成后 Docker 后台服务
service docker start
4.验证Docker安装是否成功
docker
执行命令docker后,如果与下图内容一致则表示成功。
5.配置镜像加速
默认情况下,从docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器
5.1 创建文件并配置
在linux中自己创建:/etc/docker/daemon.json文件,并导入镜像地址(二选一)、
直接 vi /etc/docker/daemon.json
中科大镜像地址
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
阿里云镜像地址
{
"registry-mirrors": ["https://ajs551uw.mirror.aliyuncs.com"]
}
5.2 重新启动docker
#重启
systemctl restart docker
#查看docker信息
docker info
二.在Docker上安装Nacos
1.搜索nacos的镜像
docker search nacos
如下就是不同版本的nacos镜像
2.拉取nacos镜像,我安装的是官方提供的版本
如果不指定具体版本号的话则就是latest版本
docker pull nacos/nacos-server
如果指定版本号就执行下面命令
三.拉取Redis镜像,MongoDB镜像,Yapi 镜像,Rabbitmq镜像,Fastdfs 镜像
1.Redis镜像
docker pull redis:5.0.2
2.拉取MongoDB镜像(Yapi是使用的MongoDB存储数据)
docker pull mongo:4.4
3.拉取 Yapi 镜像,版本信息可在 阿里云镜像仓库 查看 :
地址: https://dev.aliyun.com/detail.html?spm=5176.1972343.2.26.I97LV8&repoId=139034
docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi
4.拉取Rabbitmq镜像
docker pull rabbitmq:management
5.拉取Fastdfs镜像
docker pull delron/fastdfs
四.使用Docker服务编排批量管理所有容器
1.服务编排:按照一定的业务规则批量管理容器
2.Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:
1. 利用 Dockerfile 定义运行环境镜像
2. 使用 docker-compose.yml 定义组成应用的各服务
3. 运行 docker-compose up 启动应用
3.安装Docker Compose
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose -version
4.通过docker compose进行容器批量管理:一次性启动多个容器(Nacos+Redis+Yapi+MongoDB+Rabbitmq+Fastdfs)
4.1 创建docker-compose目录
mkdir ~/docker-file/
mkdir ~/docker-file/baseSoftware
cd ~/docker-file/baseSoftware
4.2定义docker-compose.yml 文件
4.2.1定义Redis,MongoDB,Yapi,Nacos所需的docker-compose.yml 文件
注意:docker-compose.yml 文件里面有设置ip的,要换成自己虚拟机的ip
version: "3.5"
services:
redis:
image: redis:5.0.2
container_name: redis
ports:
- 6379:6379
volumes:
- /data/redis:/data
networks:
mynetworks:
aliases:
- redis
mongo:
image: mongo:4.4
container_name: mongo
ports:
- 27017:27017
volumes:
- /data/mongodb/db:/data/db
- /data/mongodb/mymongodb:/data/mymongodb
environment:
- MONGODB_USER=root
- MONGODB_PASS=root
- MONGODB_DATABASE=testdb
networks:
mynetworks:
aliases:
- mongo
nacos:
image: nacos/nacos-server
container_name: nacos
volumes:
- /data/nacos/logs:/home/nacos/logs
ports:
- 8848:8848
environment:
- MODE=standalone
networks:
mynetworks:
aliases:
- nacos
yapi:
image: mrjin/yapi:latest
container_name: yapi
environment:
- VERSION=1.5.6
- LOG_PATH=/tmp/yapi.log
- HOME=/home
- PORT=3000
- ADMIN_EMAIL=admin@admin.com
- DB_SERVER=mongo
- DB_NAME=yapi
- DB_PORT=27017
ports:
- 3000:3000
volumes:
- /data/yapi/log/:/home/vendors/log
depends_on:
- mongo
entrypoint: "bash /wait-for-it.sh mongo:27017 -- entrypoint.sh"
networks:
mynetworks:
aliases:
- yapi
networks:
mynetworks:
name: mynetworks
driver: bridge
把当前文件放在baseSoftware目录下
4.2.2定义Fastdfs所需的docker-compose.yml文件
mkdir ~/docker-file/fastdfs
cd ~/docker-file/fastdfs
version: '3.5'
services:
tracker:
image: delron/fastdfs
container_name: tracker
network_mode: "host"
volumes:
- /data/fastdfs/tracker:/var/fdfs
command: tracker
storage:
image: delron/fastdfs
container_name: storage
network_mode: "host"
volumes:
- /data/fastdfs/storage:/var/fdfs
environment:
- TRACKER_SERVER=192.168.23.134:22122
- GROUP_NAME=group1
command: storage
depends_on:
- tracker
把当前文件放在fastdfs目录下
4.2.3定义Rabbitmq所需的docker-compose.yml文件
version: '3.5'
services:
rmqnamesrv:
image: rabbitmq:management
container_name: rabbit
ports:
- 5672:5672
- 15672:15672
volumes:
- /data/rmq/:/var/lib/rabbitmq
networks:
rmq:
aliases:
- rmq
networks:
rmq:
name: rmq
driver: bridge
把当前文件放在rmq目录下
mkdir ~/docker-file/rmq
cd ~/docker-file/rmq
4.3在执行命令之前关闭所有容器,然后删除
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
sudo docker rm $(sudo docker ps -a -q)
4.4执行容器启动命令的时候,需要和配置文件在同一个目录下
cd /root/docker-file/baseSoftware/
docker-compose up -d
cd /root/docker-file/fastdfs/
docker-compose up -d
cd /root/docker-file/rmq/
docker-compose up -d
五.验证安装成功
注:以下访问地址的ip都需要换成自己的
1.Nacos访问地址 http://192.168.23.134:8848/nacos/index.html#/login,账号:nacos,密码:nacos
2.使用 Yapi
使用自己虚拟机ip加3000端口访问yapi,登录账号admin@admin.com,密码ymfe.org,我的地址是 http://192.168.23.134:3000
使用过swagger, 觉得入侵性太大. POST又感觉和项目结合的不太紧密. 所以一直在寻找新的接口阅读/生成/测试工具. YApi就是一个不错的选择.
其余软件不再赘述.
六.因为每个虚拟机环境不同,可能遇到不同的问题,下面我汇总了一些问题及解决方法
1.连接不到Fastdfs
执行下面命令
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
打开运行面板,输入services.msc回车,即可打开服务管理。双击可对服务进行管理,检查所有虚拟机相关的服务是否正在运行,
如果没有运行手动启动,然后可以设置为自动,下次开机就会自动运行.
2.Rabbitmq启动报错时(No chain),重启docker服务
service docker restart
七.超重要,初次运行 docker-compose up 启动应用,会创建容器,然后启动,部署麻烦些,但下次就超级方便,启动虚拟机后只需要两个命令,就启动了所有容器.
1.启动docker
systemctl start docker
2.启动全部容器
docker start $(docker ps -aq)
docker ps -qa是查询当前的所有容器id
更多推荐
所有评论(0)