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 -p 443:443 -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 -v /home/www:/home/www 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