基于Docker容器安装MySQL、Redis、Nginx、RabbitMQ

Docker环境安装

  • 安装yum-utils:

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  • 为yum源添加docker仓库位置:

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  • 安装docker:

    yum install docker-ce
    
  • 启动docker:

    systemctl start docker
    

Docker容器安装MySQL

  • 下载MySQL 5.7的docker镜像:

    docker pull mysql:5.7
    
  • 使用如下命令启动MySQL服务:

    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root  \
    -d mysql:5.7
    
    
  • 参数说明:

  • -p 3306:3306:将容器的3306端口映射到主机的3306端口
  • -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂在到主机
  • -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
  • -v /mydata/mysql/data:/var/lib/mysql/:将数据文件夹挂载到主机
  • -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
  • 进入运行MySQL的docker容器:

    docker exec -it mysql /bin/bash
    
  • 使用MySQL命令打开客户端:

    mysql -uroot -proot --default-character-set=utf8
    
  • 创建mall数据库:

    create database mall character set utf8
    
  • 安装上传下载插件,并将document/sql/mall.sql上传到Linux服务器上:(该命令是在Linux环境执行,不是在docker容器内部执行的)

    yum -y install lrzsz
    
  • mall.sql文件拷贝到mysql容器的/目录下:

    docker cp /mydata/mall.sql mysql:/
    
  • 将sql文件导入到数据库:(该命令需要连接docker容器的mysql后进行操作)

    use mall;
    source /mall.sql;
    
  • 创建一个reader:123456帐号并修改权限,使得任何ip都能访问:

    grant all privileges on *.* to 'reader' @'%' identified by '123456';
    

Redis安装

  • 下载Redis5.0的docker镜像:

    docker pull redis:5
    
  • 使用如下命令启动Redis服务:

    docker run -p 6379:6379 --name redis \
    -v /mydata/redis/data:/data \
    -d redis:5 redis-server --appendonly yes
    
  • 进入Redis容器使用redis-cli命令进行连接:

    docker exec -it redis redis-cli
    

Nginx安装

  • 下载Nginx1.10的docker镜像:

    docker pull nginx:1.10
    
  • 先运行一次容器(为了拷贝配置文件):

    docker run -p 80:80 --name nginx \
    -v /mydata/nginx/html:/usr/share/nginx/html \
    -v /mydata/nginx/logs:/var/log/nginx  \
    -d nginx:1.10
    
  • 将容器内的配置文件拷贝到指定目录:

    docker container cp nginx:/etc/nginx /mydata/nginx/
    
  • 修改文件名称:(执行该命令需要先退出docker容器,进入CentOS的mydata目录)

    mv nginx conf
    

  • 终止并删除容器:

    docker stop nginx
    docker rm nginx
    
  • 使用如下命令启动Nginx服务:

    docker run -p 80:80 --name nginx \
    -v /mydata/nginx/html:/usr/share/nginx/html \
    -v /mydata/nginx/logs:/var/log/nginx  \
    -v /mydata/nginx/conf:/etc/nginx \
    -d nginx:1.10
    

RabbitMQ

  • 下载rabbitmq3.7.15的docker镜像:

    docker pull rabbitmq:3.7.15
    
  • 使用如下命令启动RabbitMQ服务:

    docker run -p 5672:5672 -p 15672:15672 --name rabbitmq \
    -d rabbitmq:3.7.15
    
  • 进入容器并开启管理功能:

    docker exec -it rabbitmq /bin/bash
    rabbitmq-plugins enable rabbitmq_management
    

  • 开启防火墙:(需要开启CentOS的防火墙)

    firewall-cmd --zone=public --add-port=15672/tcp --permanent
    firewall-cmd --reload
    

  • 访问地址查看是否安装成功(我的虚拟机IP地址为:192.168.170.128):http://192.168.170.128:15672

  • 输入账号密码并登录:guest guest

posted @ 2021-07-14 10:11  程序员波特  阅读(205)  评论(0)    收藏  举报