docker安装mysql、redis、elasticsearch、kibana、mycat和nginx


一、安装开发需要的软件

1. 安装docker

1.1 解决yum下载过慢

# 备份原yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 使用新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 生成缓存
yum makecache

1.2 卸载docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

1.3 安装yum

sudo yum install -y yum-utils

1.4 配置镜像

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

1.5 安装docker

sudo yum install docker-ce docker-ce-cli containerd.io

1.6 启动docker

# 启动docker
sudo systemctl start docker
# 查看docker 是否安装
docker -v
# 查看下载了哪些镜像
docker images

1.7 设置开机自启动

sudo systemctl enable docker

1.8 设置docker下载镜像

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://6epe10di.mirror.aliyuncs.com"]
}
EOF
# 重启docker后台线程
sudo systemctl daemon-reload
# 重启docker服务
sudo systemctl restart docker

1.9 停止、删除容器

[root@VM-16-16-centos /]~ docker ps # docker ps -a为查看所有容器(包括停止的)
# 停止容器
[root@VM-16-16-centos /]~ docker kill 9256ccc9f28b
# 删除容器
[root@VM-16-16-centos /]~ docker rm 9256ccc9f28b

2. 安装mysql

2.1 使用docker下载mysql镜像

[root@VM-16-16-centos /]~ docker pull mysql:5.7

2.2 docker启动容器

每一个容器都可以看做是一个linux系统,需要将容器的3306映射到服务器的3306端口

# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
[root@VM-16-16-centos /] sudo docker run -p 3306:3306 --name mysql \#将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/log:/var/log/mysql \# 将容器内的日志文件挂载到主机的/mydata/mysql/log目录下
-v /mydata/mysql/data:/var/lib/mysql \# 将数据文件挂载到主机
-v /mydata/mysql/conf:/etc/mysql \# 将配置文件挂载到主机
-e MYSQL_ROOT_PASSWORD=root \# 初始化root用户的密码
-d mysql:5.7

查看docker正在运行的容器

[root@VM-16-16-centos /]~ docker ps # docker ps -a为查看所有容器(包括停止的)
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
9256ccc9f28b   mysql:5.7   "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

接下来就可以用navicate测试是否能连通了

2.3 修改mysql配置

因为容器内mysql的配置文件已经挂在到了/mydata/mysql/conf目录下,所以我们可以直接在里面修改配置

因为有目录映射,所以我们可以直接在镜像外执行
[root@VM-16-16-centos /] vi /mydata/mysql/conf/my.conf 

#添加如下配置,修改mysql默认字符集(默认是拉丁字符)
[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

2.4 重启mysql容器

[root@VM-16-16-centos conf]~ docker restart mysql

2.5 进入mysql容器内部

可以看到容器内的配置文件已经成功修改

[root@VM-16-16-centos conf]~ docker exec -it mysql /bin/bash
root@9256cc2c9f2218b:/~ cd /etc/mysql/
root@9256cc2c9f2218b:/etc/mysql~ cat my.conf 

2.6 修改mysql的root用户的密码

# 进入mysql容器
[root@VM-16-16-centos conf]~ docker exec -it mysql /bin/bash
# 连接mysql
root@9256cc2c9f2218b:/~ mysql -u -p
# 设置密码
root@9256cc2c9f2218b:SET PASSWORD FOR 'root' = PASSWORD('设置的密码');
# 重启mysql容器
[root@VM-16-16-centos ~]~ docker restart mysql

3. 安装redis

3.1 创建配置文件

如果直接挂载的话docker会以为/mydata/redis/conf/redis.conf中的redis.conf是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。

[root@VM-16-16-centos conf]~ mkdir -p /mydata/redis/conf
[root@VM-16-16-centos conf]~ touch /mydata/redis/conf/redis.conf

3.2 下载redis镜像

[root@VM-16-16-centos conf]~ docker pull redis

3.3 启动redis镜像

docker 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.conf

3.3 修改redis密码

# 在终端上连接redis容器进行操作
[root@VM-16-16-centos conf]~ docker exec -it redis redis-cli
127.0.0.1:6379> config set requirepass 新密码

3.4 设置redis和mysql容器在docker启动的时候启动

[root@VM-16-16-centos conf]~ docker update mysql --restart=always
[root@VM-16-16-centos conf]~ docker update redis --restart=always
# 如果不配置上面的内容的话,我们也可以选择手动启动
[root@VM-16-16-centos conf]~ docker start mysql
[root@VM-16-16-centos conf]~ docker start redis

4. 安装elasticsearch和kibana

4.1 安装docker镜像

[root@VM-16-16-centos /]~ docker pull elasticsearch:7.4.2
[root@VM-16-16-centos /]~ docker pull kibana:7.4.2

4.2 添加配置

# 将docker里的目录挂载到linux的/mydata目录中
# 修改/mydata就可以改掉docker里的
[root@VM-16-16-centos /]~ mkdir -p /mydata/elasticsearch/config
[root@VM-16-16-centos /]~ mkdir -p /mydata/elasticsearch/data
# es可以被远程任何机器访问
[root@VM-16-16-centos /]~ echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
# 递归更改权限,es需要访问
[root@VM-16-16-centos /]~ chmod -R 777 /mydata/elasticsearch/

4.3 启动elasticsearch

# name是此容器的名字
# 9200是用户交互端口 9300是集群心跳端口
# -e指定是单节点运行
# -e指定占用的内存大小,生产时可以设置32G
[root@VM-16-16-centos /]~ 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 

4.4 启动kibana

[root@VM-16-16-centos /]~ docker run --name kibana -e ELASTICSEARCH_HOSTS=http://自己的服务器地址:9200 -p 5601:5601 -d kibana:7.4.2

4.5 设置自启动

[root@VM-16-16-centos /]~ docker update elasticsearch --restart=always
[root@VM-16-16-centos /]~ docker update kibana --restart=always

4.6 安装ik分词器并配置

由于es的默认词库无法识别一些中文单词,所以我们需要在es的插件中安装一些词库,从而方便es进行分词

[root@VM-16-16-centos /]~ cd /mydata/elasticsearch
[root@VM-16-16-centos elasticsearch]~ wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip #下载压缩包,若下载过慢可将网址复制到迅雷上下载后再上传
[root@VM-16-16-centos elasticsearch]~ mv ik plugins/ # 移动到plugins目录下
[root@VM-16-16-centos elasticsearch]~ chmod -R 777 plugins/ik
[root@VM-16-16-centos elasticsearch]~ docker restart elasticsearch

接下来的配置必须在安装nginx的环境下

[root@VM-16-16-centos /]~ cd /mydata/nginx/html
[root@VM-16-16-centos html]~ mkdir es
[root@VM-16-16-centos html]~ cd es
[root@VM-16-16-centos es]~ vi fenci.txt # 添加词库,在里面输入中文词组
[root@VM-16-16-centos es]~ cd /mydata/elasticsearch/plugins/ik/config
[root@VM-16-16-centos config]~ vi IKAnalyzer.cfg.xml # 编辑配置
# 修改如下配置
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://服务器地址/fenci/myword.txt</entry>

之后可再次通过kibana测试分词

5. 安装nginx

随便启动一个 nginx 实例,只是为了复制出配置

[root@VM-16-16-centos /]~ cd /mydata/
[root@VM-16-16-centos mydata]~ mkdir nginx
[root@VM-16-16-centos mydata]~ docker run -p 80:80 --name nginx -d nginx:1.10 #启动nginx容器,如果没有找到会直接下载
[root@VM-16-16-centos mydata]~ docker container cp nginx:/etc/nginx . #将nginx容器/etc/nginx目录复制到当前目录mydata,注意最后面有个点
[root@VM-16-16-centos mydata]~ docker stop nginx # 停止nginx容器
[root@VM-16-16-centos mydata]~ docker remove nginx # 移除nginx容器
[root@VM-16-16-centos mydata]~ mv nginx conf # 移动文件
[root@VM-16-16-centos mydata]~ mkdir nginx
[root@VM-16-16-centos mydata]~ mv conf nginx/
[root@VM-16-16-centos mydata]~ mv nginx conf
# 启动nginx
[root@VM-16-16-centos mydata]~ 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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值