首页 专题 文章 代码 归档

【Docker】Docker安装各类软件(MySQL、Redis)

1. 安装Mysql

1、拉取镜像

docker pull mysql:5.7.31

2、创建主宿机映射目录

也即保存的数据文件放到哪里?

mkdir -p /data/mysql/etc/mysql #配置文件映射
mkdir -p /data/mysql/data #数据文件映射

3、运行容器

docker run -di --name=mysql57 \
-v /data/mysql/conf:/etc/mysql \
-v /data/mysql/data:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.31 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

最好添加,因为这是解决中文乱码问题的关键!

2. 安装Redis

1、拉取

docker pull redis

2、创建本地目录

mkdir -p /data/redis/data

3、获取配置文件

从官网这里获取redis.conf配置文件

并作自己需要的修改,【可以使用wget等命令直接下载到linux】

常用解释:

  • bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
  • protected-mode no #默认yes,开启保护模式,限制为本地访问
  • daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败
  • dir ./ #输入本地redis数据库存放文件夹(可选)
  • appendonly yes #redis持久化(可选)

4、运行

docker run -itd --name redis -p 6379:6379 \
-v /data/redis/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
redis

命令解释:

  • -p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
  • --name myredis 指定该容器名称,查看和进行操作都比较方便。
  • -v 挂载目录,规则与端口映射相同。
  • -d redis 表示后台启动redis
  • redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
  • appendonly yes 开启redis 持久化

3. 安装Elasticsearch

参考一篇文章:

https://www.cnblogs.com/powerbear/p/11298135.html

1、拉取

docker pull elasticsearch:7.7.1

2、启动

docker run --name=my_es -d \
-p 9200:9200 \
-e "discovery.type=single-node" \
-p 9300:9300 \
830a894845e3

3、安装分词器ik

github release页面:

https://github.com/medcl/elasticsearch-analysis-ik/releases

下载对应版本的就行!

在docker中创建目录:

docker exec -ti 66f5d94f10df bash # 先进入
mkdir plugins/ik # 创建目录
cp /root/elasticsearch-analysis-ik-7.7.1.zip my_es:/usr/share/elasticsearch/plugins/ik #将本地的压缩包传到容器中
docker restart 66f5d94f10df # 重启就行

测试是否安装成功:

curl -X GET -H "Content-Type: application/json"  "http://localhost:9200/_analyze?pretty=true" -d'{"text":"中华五千年华夏"}';

4. Php&&Nginx

1、拉取PHP

docker pull php

拉取Nginx

docker pull nginx

2、运行Nginx

docker run -d --name nginx \
-p 8080:80 \
-v /tmp:/usr/share/nginx/html 
nginx

## 

docker run -d --name nginx \
-p 8080:80 \
-v /data/www/html:/usr/share/nginx/html \
-v /data/www/conf.d:/etc/nginx/conf.d \
nginx

3、运行PHP

docker run -d \
-v /data/www/html:/usr/share/nginx/html \
--name php-fpm \
php:7.3-fpm

4、查看IP

docker inspect php-fpm | grep "IPAddress"

5、配置文件

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    #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   /usr/share/nginx/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   "172.17.0.5:9000";
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/$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;
    #}
}

### 将上面的172.17.0.5改成需要的Ip地址即可!

在本地新建上面的文件default.conf

然后复制进容器:

docker cp ./default.conf 7b3ef3dfa4a9:/etc/nginx/conf.d/default.conf

并重启:docker restart nginx

5. 安装ElasticSearch

docker pull elasticsearch:7.9.1

创建一个网络,和其他服务关联,比如kibana

docker network create network-es # 创建一个网络,和其他服务关联,比如kibana

运行一个容器:

docker run -d --name elasticsearch --net network-es -p 19200:9200 -p 19300:19300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms2g -Xmx2g" elasticsearch:7.9.1

安装IK分词器

docker exec -it f108dcfe4029 bash ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip

其中f108dcfe4029是你的容器ID

如果报内存不足,那么将IK分词下载到本地,再复制到容器中也可(然后解压到plugins的ik目录[ik目录需自行建立])!

好了,测试结果:

POST http://124.70.54.83:19200/_analyze
Content-Type: application/json

{
  "analyzer": "ik_smart",
  "text": "你好,我是无道"
}

截图-1600843035

非常完美!


安装kibana,kibana是可视化操作es的一个在线客户端,非常适合学习的时候使用!

docker pull kibana:7.9.1

注意:版本要和你安装的es版本一致!

此文阅读完毕,您可以:分享
二维码图片 扫描关注我们哟