• docker安装常用软件


    docker基础

    • 移除旧版docker

      sudo yum remove docker 
                        docker-client 
                        docker-client-latest 
                        docker-common 
                        docker-latest 
                        docker-latest-logrotate 
                        docker-logrotate 
                        docker-selinux 
                        docker-engine-selinux 
                        docker-engine
      
    • 使用yum安装docker

      #安装依赖包
      sudo yum install -y yum-utils
      
      #鉴于国内网络问题,强烈建议使用国内源
      sudo yum-config-manager 
          --add-repo 
          https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
          
      sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
      
      #安装docker
      sudo yum install docker-ce docker-ce-cli containerd.io
      
      #设置docker开机自启
      sudo systemctl enable docker
      #启动docker
      sudo systemctl start docker
      
      #国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
      
      {
        "registry-mirrors": [
          "https://hub-mirror.c.163.com",
          "https://mirror.baidubce.com"
        ],
        "log-driver":"json-file",
        "log-opts": {"max-size":"500m", "max-file":"3"}
      }
      
      #修改完配置重启一下
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      

    docker安装mysql

    • 安装mysql

      #创建mysql配置存放目录
      mkdir -p /home/dockerData/mysql
      
      #docker拉取mysql镜像
      docker pull mysql:5.7
      
      #运行mysql
      docker run --name mysql -v /home/dockerData/mysql/conf:/etc/mysql/conf.d -v /home/dockerData/mysql/logs:/logs -v /home/dockerData/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.7
      
      #进入mysql调整模式配置,允许远程登录
      docker exec -it mysql bash
      mysql -uroot -p
      use mysql;
      select host,user from user;
      ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
      flush privileges;
      exit;
      
    • 修改mysql配置

      cd /home/dockerData/mysql/conf
      #修改my.cnf,没有就新建一个
      touch my.cnf
      vi my.cnf
      

      开启binlog,添加内容如下

      [mysqld]
      #集群时需指定,多台mysql服务器不能重复
      server_id=1
      #开启binlog日志
      log_bin=mysql-bin
      #格式STATEMENT、ROW、MIXED。这里使用ROW
      binlog_format=ROW
      #日志的基本文件名,后面会追加标识来表示每一个文件
      #log_bin_basename=/var/lib/mysql/mysql-bin
      #binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
      log_bin_index=/var/lib/mysql/mysql-bin.index
      # binlog日志保留的天数,清除超过10天的日志
      # 防止日志文件过大,导致磁盘空间不足
      expire-logs-days=10 
      #单个日志文件的大小
      max_binlog_size=500M
      

    docker安装redis

    • 安装redis

      #创建redis配置存放目录
      mkdir -p /home/dockerData/redis/conf
      mkdir -p /home/dockerData/redis/data
      
      #修改redis.conf,添加以下内容
      
      #许远程连接
      #bind 127.0.0.1
      protected-mode no
      #持久化
      appendonly yes
      #密码
      requirepass 123456
      
      
      #拉取redis
      docker pull redis
      
      #启动redis
      docker run -p 6379:6379 --name redis -v /home/dockerData/redis/conf/:/etc/redis/  -v /home/dockerData/redis/data/:/data -d redis redis-server /etc/redis/redis.conf
      

    docker安装rabbitmq

    • 安装rabbitmq

      #创建mysql配置存放目录
      mkdir -p /home/dockerData/rabbitmq/data
      
      #获取management版本的,不要获取last版本的,management版本的才带有管理界面。
      docker pull rabbitmq:management
      
      #启动
      docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq -v /home/dockerData/rabbitmq/data:/var/lib/rabbitmq rabbitmq:management
      

    docker安装nginx

    • 安装nginx

      #创建nginx的配置目录
      mkdir -p /home/dockerData/nginx/{conf.d,html,log}
      
      #获取nginx镜像
      docker pull nginx
      
      #简单启动
      docker run --name nginx -p 80:80 -d nginx
      
      #复制文件
      docker cp nginx:/etc/nginx/nginx.conf /home/dockerData/nginx/nginx.conf
      docker cp nginx:/etc/nginx/conf.d /home/dockerData/nginx
      docker cp nginx:/var/log/nginx/ /home/dockerData/nginx/log
      docker cp nginx:/usr/share/nginx/html/ /home/dockerData/nginx/
      
      #移除之前的简单nginx
      docker rm -f nginx
      
      #后台启动nginx
      docker run --name nginx -d -p 80:80 -v /home/dockerData/nginx/log:/var/log/nginx -v /home/dockerData/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/dockerData/nginx/conf.d:/etc/nginx/conf.d -v /home/dockerData/nginx/html:/usr/share/nginx/html nginx
      

    docker安装elasticsearch

    • 安装es

      #创建mysql配置存放目录
      mkdir -p /home/dockerData/es
      
      #拉取es镜像
      docker pull elasticsearch:7.2.0
      #简单运行es
      docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.2.0 
      
      # 复制 es 配置文件目录到宿主机指定目录,目标目录你可以根据需要,自行修改
      docker cp es:/usr/share/elasticsearch/config /home/dockerData/es
      # 复制 es 持久化数据目录到宿主机指定目录
      docker cp es:/usr/share/elasticsearch/data /home/dockerData/es
      # 复制 es 插件目录到宿主机指定目录
      docker cp es:/usr/share/elasticsearch/plugins /home/dockerData/es
      
      #移除原来的es
      docker rm -f es
      
      #启动es
      docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /home/dockerData/es/config:/usr/share/elasticsearch/config -v /home/dockerData/es/data:/usr/share/elasticsearch/data -v /home/dockerData/es/plugins:/usr/share/elasticsearch/plugins elasticsearch:7.2.0 
      
    • 安装es head插件

      docker pull mobz/elasticsearch-head:5
      docker run --name es-head -d -p 9100:9100 mobz/elasticsearch-head:5
      
      #修改es配置,允许跨域
      vi /home/dockerData/es/config/elasticsearch.yml
      
      #添加如下内容并保存
      http.cors.enabled: true
      http.cors.allow-origin: "*"
      
      #重启es
      docker restart es
      
      
    • 用head插件查询时报错

      {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}
      #处理办法
      sudo docker exec -it -u root elasticsearch-head /bin/bash
      修改 vendor.js 共有两处,重启head插件
      vi _site/vendor.js
      
      6886行
      contentType: "application/x-www-form-urlencoded
      改成
      contentType: “application/json;charset=UTF-8”
      7573行
      var inspectData = s.contentType === “application/x-www-form-urlencoded” &&
      改成
      var inspectData = s.contentType === “application/json;charset=UTF-8” &&
      
      docker基础容器中 bash: vim: command not found 问题解决
      
      这是因为vim没有安装, 安装即可
      先更新,防止提示:Unable to locate package vim
      apt-get update
      apt-get install vim
      
  • 相关阅读:
    【Linux技术】常用的Linux系统调用
    【Linux技术】Windows与Linux系统下的库·初探
    【C/C++】嵌入式程序员应该知道的0X10个C语言问题
    【C/C++】struct探索·extern "C"含义探索 ·C++与C的混合编程·C 语言高效编程的几招
    【Acm】八皇后问题
    【驱动】linux设备驱动·扫盲
    【驱动】linux设备驱动·字符设备驱动开发
    【教程】ubuntu下配置nvc详细教程
    【教程】InstallShield使用完全教程
    【ARM】2410裸机系列-流水灯
  • 原文地址:https://www.cnblogs.com/YangJavaer/p/14377101.html
Copyright © 2020-2023  润新知