一.在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目前已经完全支持LinuxMac 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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐