移除旧版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
安装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
安装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
安装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
安装nginx
#创建nginx的配置目录
mkdir -p /home/dockerData/nginx/{conf,conf.d,html,log}
#获取nginx镜像
docker pull nignx
#简单启动
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/conf.d
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
安装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
原文:https://www.cnblogs.com/YangJavaer/p/14377101.html