收起左侧

[JAVA] 使用docker安装服务

1
回复
[复制链接]
avatar
  • TA的每日心情
    qdsmile开心
    2021-6-8 20:49
  • 签到天数: 5 天

    [LV.2]小吧熟人

    2

    主题

    3

    帖子

    145

    积分

    发表于 2021-3-6 10:03:15 | 显示全部楼层 |阅读模式
    三、环境搭建

    2、在linux上安装docker
    docker是一种虚拟化容器技术,它基于镜像(自带镜像站docker hub)来启动各种容器,每一个容器都是一个完整的运行环境,容器之间相互隔离。安装步骤:1)进入docker官网,依次选择“resources”–>“Docs”–>“Get Docker”,然后按照下图所示从上往下依次点击,就进入了官方安装文档。2)根据文档,复制相应的命令到终端执行:
    #卸载系统之前的docker (如果有的话)另外sudo命令是防止非root用户权限不够
    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
                      
    # 最新的官网文档和视频老版不全一样                 
    sudo yum install -y yum-utils

    # 配置镜像
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
       
    sudo yum install docker-ce docker-ce-cli containerd.io
    # 启动docker
    sudo systemctl start docker
    # 设置开机自启动,以后就不用手动启动了
    sudo systemctl enable docker

    docker -v #查看docker版本
    sudo docker images #查看docker容器的资源

    # 配置镜像加速,因为docker是国外网站,所以最好从国内镜像站获取资源,
    #如阿里云(https://cr.console.aliyun.com/cn-qingdao/instances/mirrors),配置命令赋值如下:
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    #安装且配置完毕3、docker安装mysql和rabbitmq1、docker安装mysql#从docker下载需要的资源,命令格式如下,冒号后面的需要和镜像站的标签一致
    sudo docker pull mysql:5.7

    sudo 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
    # --name指定容器名字
    #-v目录挂载
    #-p指定端口映射 此处将容器的3306端口映射到主机的3306端口
    #-e设置mysql参数 此处设置进入mysqlroot用户的密码为root
    #-d后台运行

    #开启,关闭指令
    docker start mysql
    docker stop mysql

    设置docker容器中的服务开机自启动
    语法:docker update 容器名/容器id --restart=always
    docker update mysql --restart=always
    在mydata/mysql/conf目录下的my.cnf加入这段配置
    [client]
    default-character-set = utf8

    [mysql]
    default-character-set = utf8

    [mysqld]
    init_connect=' SET collation_connection = utf8_unicode_ci'
    init_connect=' SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    2、docker安装rabbitmq1、拉取镜像
    sudo docker pull rabbitmq:management

    2、运行rabbitmq
    docker run -d --hostname rabbitmq --name rabbitmq -v /mydata/rabbitmq/rabbitmq01:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672  rabbitmq:management

    3、rabbitmq的访问端口是:15672  访问地址:http://虚拟机ip:15672
    4、初始密码是 guest/guest
    5、设置容器自启动:docker update rabbitmq --restart=always
    4、rabbitmq主从复制配置和镜像集群配置sudo docker pull rabbitmq:management


    mkdir /mydata/rabbitmq
    cd rabbitmq/
    mkdir rabbitmq01 rabbitmq02 rabbitmq03

    docker run -d --hostname rabbitmq01 --name rabbitmq01 -v /mydata/rabbitmq/rabbitmq01:/var/lib/rabbitmq -p 15673:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE='ittx' rabbitmq:management


    docker run -d --hostname rabbitmq02 --name rabbitmq02 -v /mydata/rabbitmq/rabbitmq02:/var/lib/rabbitmq -p 15674:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE='ittx' --link rabbitmq01:rabbitmq01 rabbitmq:management

    docker run -d --hostname rabbitmq03 --name rabbitmq03 -v /mydata/rabbitmq/rabbitmq03:/var/lib/rabbitmq -p 15675:15672 -p 5675:5672 -e RABBITMQ_ERLANG_COOKIE='ittx' --link rabbitmq01:rabbitmq01 --link rabbitmq02:rabbitmq02 rabbitmq:management

    #主节点
    docker exec -it rabbitmq01 bin/bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl start_app
    exit

    #第二个节点
    docker exec -it rabbitmq02 bin/bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    #将第二个节点加入到主节点
    rabbitmqctl join_cluster --ram rabbit@rabbitmq01
    rabbitmqctl start_app
    exit

    #第三个节点
    docker exec -it rabbitmq03 /bin/bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    #将第二个节点加入到主节点
    rabbitmqctl join_cluster --ram rabbit@rabbitmq01
    rabbitmqctl start_app
    exit

    #实现镜像集群
    docker exec -it rabbitmq01 bash
    #设置策略  (/  虚拟主机)  (ha 策略名称) ("^"  表示所有,配置/虚拟机下的所有队列)
                ha-mode:镜像队列提供了三种模式:

                        all:全部的节点队列都做镜像;

                        exactly:指定镜像队列的节点最高镜像数量;

                        nodes:只为指定具体节点配置镜像队列;

                ha-sync-mode :节点之前的同步模式。有自动和手动两种,默认是手动,这里设置为自动。

    rabbitmqctl set_policy -p / ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'


    avatar
  • TA的每日心情
    qdsmile开心
    2024-11-14 21:34
  • 签到天数: 63 天

    [LV.6]普通吧粉

    0

    主题

    1

    帖子

    129

    积分

    发表于 2023-2-15 08:08:29 | 显示全部楼层
    非常謝謝分享
    您需要登录后才可以回帖 登录 | 立即注册 QQ登录

    本版积分规则