镜像准备
1、镜像搜索
docker search elasticsearch
2、拉取镜像
docker pull elasticsearch:7.6.2
docker pull kibana:7.6.2
罗老师 2020/9/4 19:19:41
docker network create somenetwork
罗老师 2020/9/4 19:19:48
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
docker run -d -e ES_JAVA_POTS="-Xms512m -Xmx512m" --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
然后docker ps -a 查看启动成功没有,logs查看日志 等待一会 去浏览器访问一下9200
然后浏览器中输入:http://192.168.93.128:9200/
docker network create somenetwork
#维哥的做法
docker run -id --name kibana --net somenetwork -e ELASTICSEARCH_HOSTS=http://192.168.93.128:9200 -p 5601:5601 kibana:7.6.2
然后查看容器,等待一会儿刷新一下 5601去看看
然后浏览器中输入:http://192.168.93.128:5601/
Kibana在6.7以后的版本,支持了多种语言。并且自带在安装包里。修改方式如下:
修改中文
docker exec -it kibana /bin/bash #进入容器的目录
cd config #进入配置目录
vi kibana.yml #进去编写yml文件
在kibana.yml配置文件中新增一行: #
i18n.locale: "zh-CN"
# 安装ik
docker exec -it es /bin/bash #进入es容器的目录
之后从github上抓取ik分词器的压缩包:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
#你远程安装ik的时候会提示没有那个软件,你就百度去下载一下,你可以问维维。他晓得,我告诉他了的
之后再plugins下建立ik文件夹将压缩包解压进入此文件夹:
cd plugins/
mkdir ik
cd ik
#解释一下,我的安装包放在soft的目录下面的 ,只需要从这个目录复制过来解压即可
docker cp /soft/elasticsearch-analysis-ik-7.6.2.zip es:/usr/share/elasticsearch/plugins/ik/ #将一个包复制到容器中
#解压
unzip elasticsearch-analysis-ik-7.6.2.zip
# 之后编辑plugin-descriptor.properties文件
vi plugin-descriptor.properties
# 添加以下内容
elasticsearch.version=6.7.2
docker commit 打包成镜像的容器名 打包成新的镜像名:新镜像的版本 #容器打包成镜像
docker save -o 压缩包的名字.tar 被打包的镜像名 #镜像打成压缩包
docker search rabbit
docker pull rabbitmq:3-management
docker run -i -p 5672:5672 -p 15672:15672 --name=mymq rabbitmq:3-management
docker pull nacos/nacos-server # 拉取nacos镜像
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server #运行容器
docker exec -it nacos bash 进入容器的目录
#访问 http://192.168.93.128:8848/nacos
#进入mysql容器 必须进去 ,不能进入挂载目录 因为挂载目录只是给传输文件使用的
docker exec -it c_mysql /bin/bash
mysql -u root -p
#然后输入自己的密码,最后输入更新密码语句
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'
#最后重启mysql再使用navicat连接即可成功
#但是我没有成功 ,付老师给我的命令
firewalld-cmd --zone=public --add-port=3308/tcp --permanent
#第二步,重启防火墙
systemctl restart firewalld.service
.....
# 王震做法
docker exec -it c_mysql /bin/bash
# 容器中输入下面的句子
mysql -h localhost -u root -p
未果......
#下面这个做法来自网络 存在风险 慎用
mysql -u root -p
#授权
GRANT ALL ON . TO ‘root’@’%’
刷新权限
flush privileges
更改加密规则
ALTER USER ‘root’@‘192.168.93.128’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER
更新root用户密码(123456是我的密码,要替换成自己的)
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘root’
七、刷新权限
flush privileges
docker pull morunchang/fastdfs
基于pull下来的镜像再file一个新镜像
执行命令:
docker build -t fastdfs . //fastdfs 为新镜像名字
FROM morunchang/fastdfs #基于哪一个镜像,我首先要有这个镜像
MAINTAINER fastdfs #作者名 随便写一个即可
RUN rm -rf /data/nginx/conf/nginx.conf #删掉新镜像里的配置文件
COPY nginx.conf /data/nginx/conf/nginx.conf #替换掉被删掉的配置文件 这个配置文件是下面的
执行命令
docker-compose up
version: "3.7"
services:
tracker:
image: fastdfs #基于file出来的镜像
container_name: "tracker" #新建容器名字
command: sh tracker.sh
network_mode: host
storage:
image: fastdfs
container_name: "storage" #新建容器名字
environment:
- TRACKER_IP=192.168.93.128:22122 #自己Linux地址
- GROUP_NAME=changgou #自己定义名字,但是nginx中也要改
command: sh storage.sh
network_mode: host
这是新的配置文件
里面有两个组名:
默认为group1,你要什么组名自己进去改好,到时候上传文件就是在那个组名里
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http‐cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
}
location /changgou/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache http‐cache;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 30d;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
没有必要安装lua,因为下面安装的openresty里面集合了lua和nginx
# 下载镜像
docker pull jimho/lua
# 运行容器
docker run -it --name lua jimho/lua /bin/bash
不推荐安装在Linux上面,推荐下面的docker安装方法
添加仓库执行命令
yum install yum‐utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
执行安装
yum install openresty
安装成功后 会在默认的目录如下:
/usr/local/openresty
默认已经安装好了nginx,在目录:/usr/local/openresty/nginx 下
修改/usr/local/openresty/nginx/conf/nginx.conf ,将配置文件使用的根设置为root,目 的就是将来要使用lua脚本的时候 ,直接可以加载在root下的lua脚本
cd /usr/local/openresty/nginx/conf/
vim nginx.conf
#user nobody; 配置文件第一行原来为这样, 现改为下面的配置
user root root
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2JNppHIl-1603861705674)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1599896291135.png)]
测试访问 http://192.168.93.128
考虑是否映射的端口是80,考虑会冲突的话就用99,如下所示
docker run --name openresty -p 99:80 -p 443:443 -di openresty/openresty
访问测试
http://192.168.93.128:99/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8dhRuCi-1603861705680)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1599981902627.png)]
进入容器修改文件
docker exec -it openresty /bin/bash
容器安装vi
apt-get update
apt-get -y install vim
以下添加的是鉴权方式:
[mysqld]
default_authentication_plugin = mysql_native_password
1.开启mysql容器
docker run -it -p 3308:3306 --name=c_mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
2.进入容器,进入mysql
docker exec -it c_mysql /bin/bash
进入sql
mysql -uroot -proot
3.查看日志
# 如果log_bin的值为OFF是未开启,为ON是已开启。
SHOW VARIABLES LIKE '%log_bin%';
4.退出mysql
到mysql容器中 进入mysqld.cnf文件
# 如果没有vi命令 则安装
apt-get update
apt-get -y install vim
#安装完成后输入此指令,对该文件进行修改
vi /etc/mysql/mysql.conf.d/mysqld.cnf
#如果安装不上、可以选择在window上 新建 mysqld.cnf文件,写入如下配置信息
#再拖入linux中 使用移动指令: 从主机拷贝到容器 docker cp ./文件名 容器名:/对应要移动的容器中文件的位置
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
symbolic-links=0
# 开启log_bin
log-bin=mysql-bin
binlog-format=ROW
server_id=1
#如果可以安装上
# 在[mysqld]下面添加
# [mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
5.再次进入mysql
mysql -h localhost -u root -p
6.使用root账号创建用户并授予权限
create user canal@'%' IDENTIFIED by 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT,SUPER ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
7.重启容器
docker restart c_mysql
1.拉取镜像
docker pull canal/canal-server:latest
2.可以先不做,如果有问题再做。
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
systemctl restart network
systemctl restart docker
3.启动容器,进入
# 指定canal的访问地址、暴露端口和sql的暴露端口、账户、密码、
#这个容器的配置主要是为了连接要监控的数据库
#canal监听数据库的地址,端口号,并且添加MySQL的用户名和密码
docker run --name canal -e canal.instance.master.address=192.168.93.133:3307 -e canal.instance.dbUsername=root -e canal.instance.dbPassword=root -p 11111:11111 -d canal/canal-server
docker exec -it canal /bin/bash
4.进入该配置文件
vi /home/admin/canal-server/conf/canal.properties
5.添加
canal.id=2 (此处的id不能与mysql的id相同)
6.重启
docker restart canal
# 可以设置开机启动 适用于所有容器
docker update --restart=always canal
docker update --restart=always nacos
1.拉取镜像
docker pull mongo
2.run容器
docker run \
--name mongodb_server \
-p 27017:27017 \
-v /root/mongo/configdb:/data/configdb/ \
-v /root/mongo/db/:/data/db/ \
-d mongo --auth
4、 创建管理员admin 用户和密码
4.1、以 admin 用户身份进入mongo
docker exec -it mongodb_server mongo admin
4.2 创建一个 admin 管理员账号:
db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
4.3 退出
exit
4.4:以 admin 用户身份进入mongo :
docker exec -it mongodb_server mongo admin
4.5:对 admin 用户 进行身份认证:
db.auth("admin","admin123456");
5.新建一个数据库
db.createUser({ user: 'xyy', pwd: 'xyy123456', roles: [ { role: "readWrite", db: "xyy" } ] });
6:继续退出
exit
7切换数据库:
use xyy
8 添加数据
db.test.save({name:"kebi"});
version: '2.2'
services:
esnode1:
image: docker.elastic.co/elasticsearch/elasticsearch:6.4.3
container_name: esnode1
environment:
- cluster.name=my-cluster
- bootstrap.memory_lock=true
- "http.cors.enabled=true"
- "http.cors.allow-origin=*"
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
networks:
- esnet
esnode2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.4.3
container_name: esnode2
environment:
- cluster.name=my-cluster
- bootstrap.memory_lock=true
- "http.cors.enabled=true"
- "http.cors.allow-origin=*"
- "discovery.zen.ping.unicast.hosts=esnode1"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- esnet
networks:
esnet:
ulimits:指定不限制虚拟和物理内存使用
# 关闭防火墙
systemctl stop firewalld
出现以下错误,则为虚拟内存不足
max virtual memory areas vm.max_map_count
# 调整内存
sysctl -w vm.max_map_count=262144
docker pullmobz/elasticsearch-head:5
docker run -p 9100:9100 mobz/elasticsearch-head:5