Docker下安装Redis和Mysql,elasticsearch,Kibana,nginx——简洁篇

Docker——Docker介绍
Docker——Docker运行底层原理和为什么Docker比Vm快
Docker——Docker命令——工作最常用
Docker——镜像原理
Docker——容器数据卷
Docker——DockerFile

默认大家都已经在虚拟机上(centos)安装好了docker,然后接下来我们来讲解如何在docker上安装redis,mysql
如果没安装好docker如下文章有讲如何安装docker
Docker——Docker介绍

1:Docker下安装Mysql

第一步:去docker hub上拉取mysql镜像

$ docker pull mysql:5.7

第二步:执行run命令
在这里插入图片描述
如下就解释了容器文件的挂载与端口映射
在这里插入图片描述

注意:我们的mysql默认的字符集子拉丁,我们要修改配置文件为utf-8,在
/mydata/mysql/conf中创建my.cnf文件进行配置,如下在这里插入图片描述

提示:执行docker exec命令可以进入到容器中
在这里插入图片描述

2:Docker下安装Redis

第一步:去docker hub上拉取镜像

$ docker pull redis

第二步:执行run命令
在这里插入图片描述

注意:redis.conf文件必须要创建出来,否则执行run命令,默认是目录,不可以,目的以后挂载所有文件到如下文件夹下
在这里插入图片描述

第三步:我们要在redis.conf文件中配置持久化配置
理由:如下我们重启redis后,再次查询k1值,发现为nil,说明没有进行持久化配置
在这里插入图片描述
我们去/mydata/redis/conf/redis.conf中配置(因为我们已经把/etc/redis/redis.conf中的文件挂载到了主机中),配置如下内容,便可以完成redis持久化配置
在这里插入图片描述

如上,我们已经完成了docker上安装了redis

注意:docker exec 命令是进入到redis的容器中进行操作,和如上mysql实现一样

3:Docker下安装elasticsearch

第一步:去docker hub上拉取镜像

$ docker pull elasticsearch:7.4.2

第二步:执行run命令,成功后出现如下标识

#表示es可以被远程的任何机器访问
$ echo "http.host:0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml
#两个端口含义: 9200:9200 代表发送restapi请求访问es的端口   9300:9300 代表在分布式集群状态下的通信端口
# "discovery.type=single-node" 表明以单节点运行
#  ES_JAVA_OPTS="-Xms64m -Xmx128m"  如果不指定es一启动就会全部占用内存,会卡死,所以必须要设置它的内存大小
$ docker run --name elasticsearch -p 9200:9200 -p 9300:9300 
-e "discovery.type=single-node" 
-e ES_JAVA_OPTS="-Xms64m -Xmx128m"
-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
4d4565940bf928d0577ff3b96616240f4fbe172d62eef46d863eb40b764109d7

注意:必须要先创建以下文件夹,目的以后挂载所有文件到如下文件夹下
在这里插入图片描述

第三步:执行docker ps命令查看是否启动成功,并在主机浏览器测试访问,发现报错不可以访问

[root@192 zlj]# docker ps 
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                          PORTS                                            NAMES
979504dbcf95        elasticsearch:7.4.2   "/usr/local/bin/dock…"   6 seconds ago       Up 4 seconds                    0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

http://192.168.174.139:9200/
我们再一次执行docker ps发现elasticsearch自己退出了

[root@192 mydata]# docker ps  -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                          PORTS                               NAMES
979504dbcf95        elasticsearch:7.4.2   "/usr/local/bin/dock…"   6 minutes ago       Exited (1) 1 second ago                                             elasticsearch

我们接着用docker logs 979504dbcf95 命令来查看为什么不可以正常访问
第一:如果是报错误访问拒绝说明,是挂载的外部文件没有权限我们要改成如下形式调用如下命令

$ chmod -R 777 /mydata/elasticsearch
#保证我们权限配置
[root@192 mydata]# ls -l /mydata/elasticsearch
总用量 0
drwxrwxrwx. 2 root root 31 6月  15 12:06 config
drwxrwxrwx. 2 root root  6 6月  15 10:46 data
drwxrwxrwx. 2 root root  6 6月  15 10:46 plugins

第二:如果是报如下Exception in thread “main” SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];
说明我们配置想要让es可以远程被访问的http.host: 0.0.0.0配置没配置好,我忘记加了一个空格号在:后面

http.host: 0.0.0.0

再次启动,并且多次查看发现都已经成功启动,没有退出,说明可以进行访问了

[root@192 mydata]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                         PORTS                                            NAMES
b9c2af1b29dc        elasticsearch:7.4.2   "/usr/local/bin/dock…"   10 seconds ago      Up 8 seconds                   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch
[root@192 mydata]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                         PORTS                                            NAMES
b9c2af1b29dc        elasticsearch:7.4.2   "/usr/local/bin/dock…"   12 seconds ago      Up 11 seconds                  0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   elasticsearch

访问http://192.168.174.139:9200/出现如下页面说明成功连接

{
  "name" : "b9c2af1b29dc",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "7BMYqlj-RKadwD89DfYrug",
  "version" : {
    "number" : "7.4.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date" : "2019-10-28T20:40:44.881551Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

4:Docker下安装Kibana

第一步:拉取镜像

$ docker pull kibana:7.4.2

第二步:执行run

# ELASTICSEARCH_HOSTS=http://192.168.174.139:9200必须要写自己的es主机地址
# 5601:5601 5601为kibnana的访问地址,然后从该可视化界面发送请求到es的http://192.168.174.139:9200 
$ [root@192 mydata]# docker run --name Kibnana -e ELASTICSEARCH_HOST=http://192.168.174.139:9200 -p 5601:5601 -d kibana:7.4.2
c6c5d17800271cfaefe374964da4e5686885cb230e2da440328f788671374403

第三步:docker ps查看是否启动成功

[root@192 mydata]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                              PORTS                                            NAMES
c6c5d1780027        kibana:7.4.2          "/usr/local/bin/dumb…"   2 minutes ago       Up 2 minutes                        0.0.0.0:5601->5601/tcp                           Kibnana

第四步:访问浏览器
出现kibnana的界面

5:如何可以在虚拟机重新开启后,可以自动重启容器

调用如下命令

$ sudo docker update mysql --restart=always
$ sudo docker update redis --restart=always
$ [root@192 mydata]# docker update Kibnana --restart=always
Kibnana

6:Docker下安装nginx

第一步:拉取镜像

$ docker pull nginx:1.10

第二步:执行run

$ docker run -p 80:80 --name nginx -d nginx:1.10

猜你喜欢

转载自blog.csdn.net/qq_44891295/article/details/107029662