搭建基于DOCKER的开发环境

2021-09-09 10:21:20 锅仔

搭建基于DOCKER的开发环境

安装Docker

  1. 如果是Centos8 需要现安装

    dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm 或者下载完成之后在执行 dnf install 报名 必须用dnf来安装否则 使用rpm手动安装的各种依赖包文件找不到错误 各种容器里上不了的问题 按顺序执行下面的命令即可搞定 nmcli connection modify docker0 connection.zone trusted systemctl stop NetworkManager.service firewall-cmd --permanent --zone=trusted --change-interface=docker0 systemctl start NetworkManager.service nmcli connection modify docker0 connection.zone trusted systemctl restart docker.service
  2. 然后执行官方网站相关步骤即可

  3. 镜像加速

    sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://xr5tuec3.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

安装MySQL

  1. 主从复制相关命令

– 主数据库命令
show master status //查看主数据库相关信息

– 从数据库命令
stop slave; //停止
– 更改同步配置
change master to master_host=‘172.18.0.1’, master_user=‘slave’, master_password=‘123456’, master_port=6033, master_log_file=‘mysql-bin.000005’, master_log_pos=1225, master_connect_retry=30;

– start slave io_thread;
start slave;
show slave status;




2. 

```bash
docker pull mysql

为了容器直接互通 创建一个网段专门用来MySQL容器直接通信

简单方式 docker network create --subnet=172.18.0.0/16 mysql-net

详细方式 docker network create -d bridge --ip-range=192.168.1.0/24 --gateway=192.168.1.1 --subnet=192.168.1.0/24 bridge2

  1. 启动两个docker容器

    主数据库

    docker run --restart=always -d --net mysql-net --ip 172.18.0.2 -v /usr/local/env/mgl/_db_data/mysql/master/data:/var/lib/mysql -v /usr/local/env/mgl/_db_data/mysql/master/my.cnf:/etc/mysql/my.cnf -v /usr/local/env/mgl/_db_data/mysql/master/conf.d:/etc/mysql/conf.d -p 6033:6033 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 mysql

    从数据库

    docker run --restart=always -d --net mysql-net --ip 172.18.0.3 -v /usr/local/env/mgl/_db_data/mysql/slave/data:/var/lib/mysql -v /usr/local/env/mgl/_db_data/mysql/slave/my.cnf:/etc/mysql/my.cnf -v /usr/local/env/mgl/_db_data/mysql/slave/conf.d:/etc/mysql/conf.d -p 6034:6033 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 mysql

    selinux 防火墙临时关闭或者永久 不然有些端口用不了 可配置但麻烦

    配置主(master)服务器my.cnf

    1. 配置my.cnf

       [mysqld] 
       ## 同一局域网内注意要唯一 
      server-id=100   
       ## 开启二进制日志功能,可以随便取(关键) 
      log-bin=mysql-bin
      
    2. 创建同步用户

      CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
      GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
      FLUSH PRIVILEGES;
      

    配置从(slave)服务器

    1. 配置my.cnf

      [mysqld]
      ## 设置server_id,注意要唯一
      server-id=101  
      ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
      log-bin=mysql-slave-bin   
      ## relay_log配置中继日志
      relay_log=edu-mysql-relay-bin  
      

      配置完都需要重启

    在slave从主机执行

    1. 查询容器IP地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id

      change master to master_host='172.18.0.2', master_user='slave', master_password='123456', master_port=6033, master_log_file='mysql-bin.000002', master_log_pos=439, master_connect_retry=30;
      

      在主数据库里执行 show master status; 获取如下信息

      master_port:Master的端口号,指的是容器的端口号
      
      master_user:用于数据同步的用户
      
      master_password:用于同步的用户的密码
      
      master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
      
      master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
      
      master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒
      
      1. 在Slave 中的mysql终端执行show slave status \G;用于查看主从同步状态。
      2. 在从数据库执行 start slave; 开始复制

安装PostgreSQL

  1. 拉取官方镜像 docker pull postgres
  2. docker run --restart=always --name postgres -v /usr/local/env/mgl/_db_data/postgresql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mgl.tech -p 5432:5432 -d postgres

安装GOGS

  1. docker pull gogs

  2. 现运行一次 然后拷贝相应目录及文件到本地相应的目录下,然后在执行步骤3

    docker run --restart=always --name=gogs -d -p 1080:3000 -v /usr/local/env/mgl/_dev/gogs/data:/data gogs/gogs

  3. docker run --restart=always --name=gogs -d -p 1080:3000 -v /usr/local/env/mgl/_dev/gogs/data:/data -v /usr/local/env/mgl/_dev/gogs/templates:/app/gogs/templates -v /usr/local/env/mgl/_dev/gogs/public:/app/gogs/public gogs/gogs

安装NEXUS

  1. docker pull sonatype/nexus3

  2. 设定权限不然因权限问题无法创建文件等启动失败
    sudo chown -R 200 /usr/local/env/mgl/_maven/_nexus/data
    
    docker run --restart=always -d -p 8081:8081 --name nexus -v /usr/local/env/mgl/_maven/_nexus/data:/nexus-data sonatype/nexus3
    
    启动成功之后admin密码存放路径 /nexus-data/admin.password 改为admin123
    

安装REDIS

安装RabbitMQ

  1. docker pull rabbitmq
  2. docker run --restart=always -d --hostname mgl-rabbit -p 5672:5672 --name rabbit rabbitmq

安装go-fastdfs

docker run --name fastdfs -d --restart=always -v /usr/local/env/mgl/_data/dfsgo-data:/data -p 8082:8080 -e GO_FASTDFS_DIR=/data sjqzhang/go-fastdfs #修改配置文件 group参数值改为r1 vi /data/conf/cfg.json

留言

#0
Emoji

评论内容审核通过后显示,稍安勿躁

闲言碎语

最新文章

    No date selected
    December 2021
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Use cursor keys to navigate calendar dates

    广告区域

    云闪付天天签到

    扫码领红包

    Image