【docker-compose】Linux上安装 mysql、redis、rabbitmq、elasticsearch、minio

7 篇文章 0 订阅
5 篇文章 0 订阅

安装 Docker

# 1、卸载旧的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2、需要的安装包                  
yum install -y yum-utils
# 3、设置镜像的仓库
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo		# 推荐使用阿里云
    
# 更新包的索引
yum makecache fast

# 4、安装docker相关的内容  docker-ce社区版
yum install docker-ce docker-ce-cli containerd.io

# 5、启动docker
systemctl start docker

# 6、使用docker version检测是否安装成功
docker version
-------------------------------------------------------
# 阿里云镜像加速
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://tj4w9gpw.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

安装 docker-compose

  • 下载 Docker Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 修改该文件的权限为可执行
chmod +x /usr/local/bin/docker-compose
  • 查看是否已经安装成功
docker-compose --version
  • docker-compose 文件
version: '3'
services:
  mingweb:
    build: .
    restart: always
    image: mingweb1.0
    ports:
      - "8080:8080"
    depends_on:
      - mysql
      - redis
      - rabbitmq
      - elasticsearch

  mysql:
    image: mysql:8.0
    container_name: mysql
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
    # data 用来存放了数据库表文件,init存放初始化的脚本
    volumes:
      - /data/docker_file/mysql/data/:/var/lib/mysql/
      - /data/docker_file/mysql/conf/my.cnf:/etc/my.cnf
      - /data/docker_file/mysql/init:/docker-entrypoint-initdb.d/
    restart: always
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: root123

  redis:
    image: redis
    container_name: redis
    # 优先使用命令行参数,期次是redis.conf中的参数
    command: redis-server /usr/local/etc/redis/redis.conf  --requirepass "root123"
    restart: always
    volumes:
      - /data/docker_file/redis/data:/data
      - /data/docker_file/redis/data/redis.conf:/usr/local/etc/redis/redis.conf
    ports:
      - "6379:6379"

  rabbitmq:
    hostname: rabbitmq-standalone
    image: rabbitmq:3.8.7-management
    container_name: rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=root
      - RABBITMQ_DEFAULT_PASS=root123
    restart: always
    volumes:
      - /data/docker_file/rabbitmq/data:/var/lib/rabbitmq
    ports:
      - "15672:15672"
      - "5672:5672"
    logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"

  elasticsearch:
    image: elasticsearch:7.0.0
    container_name: elasticsearch
    restart: always
    environment:
      - discovery.type=single-node
      - cluster.name=elastic-pro
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /data/docker_file/elasticsearch/data:/usr/share/elasticsearch/data
      - /data/docker_file/elasticsearch/plugins:/usr/share/elasticsearch/plugins
    ports:
      - 9200:9200
      - 9300:9300
      
  minio:
    image: minio/minio                                  
    container_name: minio                                       
    restart: always                                            
    volumes:                                                    
      - /data/docker_file/minio/data:/data
      - /data/docker_file/minio/minio:/minio
      - /data/docker_file/minio/config:/root/.minio
    environment:                                      # 设置环境变量,相当于docker run命令中的-e
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
      MINIO_PROMETHEUS_AUTH_TYPE: "public"  
      MINIO_ACCESS_KEY: "root"                        # 登录账号
      MINIO_SECRET_KEY: "root123456"                    # 登录密码
    command: server /data
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
    ports:                              # 映射端口
      - "9000:9000"
      - "42330:42330"
  • 构建镜像
docker-compose build
  • 运行服务
docker-compose up -d (加-d的话就是后台运行)

docker-compose 基本命令汇总

  • 卸载docker-compose
sudo rm /usr/local/bin/docker-compose
  • 停止所有正在运行的相关容器
docker-compose stop
# 可以通过该命令再次启动
docker-compose start
  • 停用移除所有容器以及网络相关
docker-compose down

在CentOS中创建新用户,幷授权

出于安全考虑,elasticsearch默认不允许以root账号运行

  • 创建一个用户名:ming
adduser ming
  • 为这个用户初始化密码
passwd ming
  • 添加w权限
chmod -v u+w /etc/sudoers
  • 在下面的一行下追加新增的用户,wq保存退出
vim /etc/sudoers
## Allow root to run any commands anywher  
root    ALL=(ALL)       ALL  
ming  ALL=(ALL)       NOPASSWD: ALL  
  • 将写权限收回
chmod -v u-w /etc/sudoers

解决普通用户连接不上 docker-compose 的问题

# 输入完命令后,重启XShell客户端
sudo groupadd docker
sudo usermod -aG docker $USER

elasticsearch 的挂载目录开启权限

sudo chmod 777 /data/docker_file/elasticsearch/data

sudo chmod 777 /data/docker_file/elasticsearch/plugins
  • 如果用 IK 分词器的话,直接将解压后的文件放入到挂载目录 /data/docker_file/elasticsearch/plugins 下,重启生效

过程中自己使用到的 Linux 命令

  • Linux 里查看所有用户: cat /etc/passwd |cut -f 1 -d :
  • 查看当前用户: whoami
  • 切换用户: su 用户名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值