docker安装mysql、redis、elasticsearch、kibana、mycat和nginx
谷粒商城学习笔记一、安装开发需要的软件1. 安装docker一、安装开发需要的软件1. 安装docker
·
docker安装mysql和redis
一、安装开发需要的软件
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条内容
所有评论(0)