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