进入Linux系统,(最好是root用户)
docker安装
第一
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 \
device-mapper-persistent-data \
lvm2
第三
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
第四:全部y(同意)
sudo yum install docker-ce docker-ce-cli containerd.io
启动
sudo systemctl start docker
开机自启
sudo systemctl enable docker
配置镜像加速器
1、
sudo mkdir -p /etc/docker
2、
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ucn3c8m2.mirror.aliyuncs.com"]
}
EOF
3、
sudo systemctl daemon-reload
4、 重启docker
sudo systemctl restart docker
下载mysql
sudo docker pull mysql:5.7
查看当前安装的
sudo docker images
查看正在运行的容器
启动mysql容器
# --name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行
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
用数据库连接
配置mysql
# 进入mysql容器
docker exec -it mysql bin/bash
exit;
# 进入mysql配置文件,修改mysql字符编码
vi /mydata/mysql/conf/my.conf
[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
# 重新启动mysql
docker restart mysql
有时候docker会报错运行下面代码
systemctl restart docker
Redis安装
下载redis镜像
docker pull redis创建实例并启动mkdir -p /mydata/redis/conftouch /mydata/redis/conf/redis.conf启动redisdocker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \-d redis redis-server /etc/redis/redis.confdocker连接redisdocker exec -it redis redis-cli
开启持久化
vi /mydata/redis/conf/redis.conf
# 插入下面内容
appendonly yes
保存
重启redis 今后进入虚拟机都使用重启开启
docker restart redis
虚拟机启动自动启动docke镜像
sudo docker update mysql --restart=always
sudo docker update redis --restart=always
docker update elasticsearch --restart=always
docker update nginx --restart=always
docker update kibana --restart=always
ElasticSearch安装.
没有管理员权限,加sudo前缀
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "http.host: 0.0.0.0" > /mydata/elasticsearch/config/elasticsearch.ymldocker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.4.2
修改权限
chmod -R 777 /mydata/elasticsearch/
重启ES
然后访问9200端口 能显示就成功了
kibana
docker run --name kibana \
-e ELASTICSEARCH_HOSTS=http://192.168.118.129:9200 \
-p 5601:5601 \
-d kibana:7.4.2
IK分词器下载安装
Release v7.4.2 · medcl/elasticsearch-analysis-ik · GitHub
RabbitMQ安装
docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
Nginx安装
docker run -p 80:80 --name nginx -d nginx:1.10
docker container cp nginx:/etc/nginx .
停止并删除nginx容器
docker stop nginx
docker rm nginx
更新目录
cd /mydata
mv nginx conf
mkdir nginx
mv conf/ nginx/
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
负载均衡二:
nginx代理给网关的时候,会丢失请求的host信息。解决方案如下 加上
proxy_set_header Host $host;
nginx动静分离
search配置
最终配置
192.168.118.129 gulimall.com 192.168.118.129 search.gulimall.com 192.168.118.129 item.gulimall.com 192.168.118.129 auth.gulimall.com 192.168.118.129 cart.gulimall.com 192.168.118.129 order.gulimall.com 192.168.118.129 member.gulimall.com 192.168.118.129 seckill.gulimall.com 127.0.0.1 ssoserver.com 127.0.0.1 client1.com 127.0.0.1 client2.com
设置外网可访问