青冥 青冥
首页
  • Java 基础
  • Java 进阶
  • Java Java 版本新特性
  • JVM
  • MySQL
  • Tomcat
  • Nginx
  • Spring 系列

    • Spring
    • Spring IOC
    • Spring AOP
    • Spring MVC
  • ORM

    • Mybatis
  • 设计模式

    • 23 种设计模式
  • 操作系统内核
  • JVM 内存模型
  • 并发同步处理
  • Atomic 原子操作
  • 队列(Queue)
  • 线程池(Thread Pool)
  • 分布式 - 消息中间件

    • 消息中间件
  • 分布式 - 存储中间件

    • 存储中间件
  • 分布式 - RPC 框架

    • RPC 框架
  • Spring Boot
  • Spring Cloud Alibaba
  • Spring Cloud Netflix
  • Git
  • Maven
  • Jenkins
  • Linux
  • 容器化

    • Docker
    • Kubernetes
  • 面试合集

    • 缓存
  • 实战项目
  • 数据结构与算法
  • 计算机原理
  • 大数据
  • 人工智能(AI)
  • 前端
  • 留言区
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 关于
  • 友情链接
🍊Gitlab (opens new window)

iByte Horizon

好记性不如烂笔头
首页
  • Java 基础
  • Java 进阶
  • Java Java 版本新特性
  • JVM
  • MySQL
  • Tomcat
  • Nginx
  • Spring 系列

    • Spring
    • Spring IOC
    • Spring AOP
    • Spring MVC
  • ORM

    • Mybatis
  • 设计模式

    • 23 种设计模式
  • 操作系统内核
  • JVM 内存模型
  • 并发同步处理
  • Atomic 原子操作
  • 队列(Queue)
  • 线程池(Thread Pool)
  • 分布式 - 消息中间件

    • 消息中间件
  • 分布式 - 存储中间件

    • 存储中间件
  • 分布式 - RPC 框架

    • RPC 框架
  • Spring Boot
  • Spring Cloud Alibaba
  • Spring Cloud Netflix
  • Git
  • Maven
  • Jenkins
  • Linux
  • 容器化

    • Docker
    • Kubernetes
  • 面试合集

    • 缓存
  • 实战项目
  • 数据结构与算法
  • 计算机原理
  • 大数据
  • 人工智能(AI)
  • 前端
  • 留言区
  • 本站

    • 分类
    • 标签
    • 归档
  • 我的

    • 关于
  • 友情链接
🍊Gitlab (opens new window)
  • Git

  • Maven

  • Jenkins

  • Linux

  • 虚拟容器

    • Docker

      • 基础篇 Docker 安装与简介
      • 基础篇 Docker 常用命令
      • 基础篇 Docker 镜像
      • 基础篇 容器数据卷
      • 基础篇 Dockerfile
      • 高级篇 Docker 网络
      • 高级篇 Docker Compose
      • 辅助篇 Docker 常用服务安装
        • 1. 常用服务安装教程
          • 1.1 安装mysql
          • 1.2 安装Redis服务
          • 1.3 安装Nginx
          • 1.4 安装Tomcat
          • 1.5 安装MongoDB数据库
          • 1.6 安装ElasticSearch
        • 2. Docker中出现如下错误解决方案
    • Kubernetes

  • 互联网工具 - 专题
  • 虚拟容器
  • Docker
沉梦昂志
2025-03-25
目录

辅助篇 Docker 常用服务安装

内容概述

Docker 常用服务安装教程。

  • 1. 常用服务安装教程
    • 1.1 安装mysql
    • 1.2 安装Redis服务
    • 1.3 安装Nginx
    • 1.4 安装Tomcat
    • 1.5 安装MongoDB数据库
    • 1.6 安装ElasticSearch
  • 2. Docker中出现如下错误解决方案

# 1. 常用服务安装教程

# 1.1 安装mysql

# 1. 拉取mysql镜像到本地
docker pull mysql[:tag]   # tag不加默认最新版本

# 2. 运行mysql服务
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql[:tag]  		      # 没有暴露外部端口外部不能连接
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d  mysql[:tag]

# 3. 进入mysql容器
docker exec -it 容器名|容器ID bash

# 4. 外部查看mysql日志
docker logs 容器名|容器ID

# 5. 使用自定义配置参数
docker run --name mysql -v /root/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql[:tag]

# 6. 将容器数据位置与宿主机位置挂载保证数据安全
docker run --name mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql[:tag]

# 7. 通过其他客户端访问 如在window系统|macos系统使用客户端工具访问

# 8. 将mysql数据库备份为sql文件
docker exec mysql|容器ID sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql         # 导出全部数据
docker exec mysql sh -c 'exec mysqldump --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql               # 导出指定库数据
docker exec mysql sh -c 'exec mysqldump --no-data --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql     # 导出指定库数据不要数据

# 9. 执行sql文件到mysql中
docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /root/xxx.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 1.2 安装Redis服务

# 1. 在docker hub搜索redis镜像
docker search redis

# 2. 拉取redis镜像到本地
docker pull redis

# 3. 启动redis服务运行容器
docker run --name redis -d redis[:tag]                  # 没有暴露外部端口
docker run --name redis -p 6379:6379 -d redis[:tag]     # 暴露外部宿主机端口为6379进行连接

# 4. 查看启动日志
docker logs -t -f 容器ID|容器名

# 5. 进入容器内部查看
docker exec -it 容器ID|容器名 bash

# 6. 加载外部自定义配置启动redis容器
# 默认情况下redis官方镜像中没有redis.conf配置文件 需要去官网下载指定版本的配置文件
# 1. wget http://download.redis.io/releases/redis-5.0.8.tar.gz  下载官方安装包
# 2. 将官方安装包中配置文件进行复制到宿主机指定目录中如 /root/redis/redis.conf文件
# 3. 修改需要自定义的配置
# bind 0.0.0.0 开启远程权限
# appenonly yes 开启aof持久化
# 4. 加载配置启动
docker run --name redis -v /root/redis:/usr/local/etc/redis -p 6379:6379 -d redis redis-server
/usr/local/etc/redis/redis.conf

# 7. 将数据目录挂在到本地保证数据安全
docker run --name redis -v /root/redis/data:/data -v /root/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 -d redis redis-server /usr/local/etc/redis/redis.conf  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 1.3 安装Nginx

# 1. 在docker hub搜索nginx
docker search nginx

# 2. 拉取nginx镜像到本地
docker pull nginx

# 3. 启动nginx容器
docker run -p 80:80 --name nginx01 -d nginx

# 4. 进入容器
docker exec -it nginx01 /bin/bash
# 4.1 查找目录
whereis nginx
# 4.2 配置文件
/etc/nginx/nginx.conf

# 5. 复制配置文件到宿主机
docker cp nginx01(容器ID|容器名):/etc/nginx/nginx.conf 宿主机名录

# 6. 挂在nginx配置以及html到宿主机外部
docker run --name nginx02 -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/html:/usr/share/nginx/html -p 80:80 -d nginx        
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 1.4 安装Tomcat

# 1. 在docker hub搜索tomcat
docker search tomcat

# 2. 下载tomcat镜像
docker pull tomcat

# 3. 运行tomcat镜像
docker run -p 8080:8080 -d --name mytomcat tomcat

# 4. 进入tomcat容器
docker exec -it mytomcat /bin/bash

# 5. 将webapps目录挂载在外部
docker run -p 8080:8080 -v /root/webapps:/usr/local/tomcat/webapps -d --name mytomcat tomcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 1.5 安装MongoDB数据库

# 1. 运行mongDB
docker run -d -p 27017:27017 --name mymongo mongo     # 无须权限
docker logs -f mymongo                                # 查看mongo运行日志

# 2. 进入mongodb容器
docker exec -it mymongo /bin/bash
# 直接执行mongo命令进行操作

# 3. 常见具有权限的容器
docker run --name mymongo -p 27017:27017 -d mongo --auth

# 4. 进入容器配置用户名密码
mongo
# 4.1 选择admin库
use admin 
# 4.2 创建用户,此用户创建成功,则后续操作都需要用户认证
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]})
# 4.3 退出mongodb
exit

# 5. 将MongoDB中数据目录映射到宿主机中
docker run -d -p 27017:27017 -v /root/mongo/data:/data/db --name mymongo mongo 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 1.6 安装ElasticSearch

  • 注意:调高JVM线程数限制数量

# 1.6.1 拉取镜像运行elasticsearch

# 1. dockerhub 拉取镜像
docker pull elasticsearch:6.4.2

# 2. 查看docker镜像
docker images

# 3. 运行docker镜像
docker run -p 9200:9200 -p 9300:9300 elasticsearch:6.4.2
1
2
3
4
5
6
7
8
  • 启动出现如下错误 错误信息

# 1.6.2 预先配置

# 1.在centos虚拟机中,修改配置sysctl.conf
vim /etc/sysctl.conf

# 2. 加入如下配置
vm.max_map_count=262144 

# 3. 启用配置
sysctl -p
# 注意:这一步是为了防止启动容器时,报出如下错误:
# bootstrap checks failed max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
1
2
3
4
5
6
7
8
9
10

# 1.6.3 启动EleasticSearch容器

# step 1:复制容器中data目录到宿主机中
docker cp 容器ID:/usr/share/share/elasticsearch/data /root/es

# step 2:运行ES容器 指定jvm内存大小并指定ik分词器位置

docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -v /root/es/plugins:/usr/share/elasticsearch/plugins -v /root/es/data:/usr/share/elasticsearch/data elasticsearch:6.4.2
1
2
3
4
5
6

# 1.6.4 安装IK分词器

# 1. 下载对应版本的IK分词器
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.2/elasticsearch-analysis-ik-6.4.2.zip

# 2. 解压到plugins文件夹中
yum install -y unzip
unzip -d ik elasticsearch-analysis-ik-6.4.2.zip

# 3. 添加自定义扩展词和停用词
cd plugins/elasticsearch/config
vim IKAnalyzer.cfg.xml
	<properties>
		<comment>IK Analyzer 扩展配置</comment>
		<!--用户可以在这里配置自己的扩展字典 -->
		<entry key="ext_dict">ext_dict.dic</entry>
		<!--用户可以在这里配置自己的扩展停止词字典-->
		<entry key="ext_stopwords">ext_stopwords.dic</entry>
	</properties>

# 4. 在ik分词器目录下config目录中创建ext_dict.dic文件   编码一定要为UTF-8才能生效
vim ext_dict.dic 加入扩展词即可

# 5. 在ik分词器目录下config目录中创建ext_stopword.dic文件
vim ext_stopwords.dic 加入停用词即可

# 6. 重启容器生效
docker restart 容器ID

# 7. 将此容器提交成为一个新的镜像
docker commit -a="ibytehorizon" -m="es with IKAnalyzer" 容器ID ibytehorizon/elasticsearch:6.4.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 1.6.5 安装Kibana

# 1. 下载kibana镜像到本地
docker pull kibana:6.4.2

# 2. 启动kibana容器
docker run -d --name kibana -e ELASTICSEARCH_URL=http://10.15.0.3:9200 -p 5601:5601 kibana:6.4.2
1
2
3
4
5

# 2. Docker中出现如下错误解决方案

[root@localhost ~]# docker search mysql 或者 docker pull 这些命令无法使用
Error response from daemon: Get https://index.docker.io/v1/search?q=mysql&n=25: x509: certificate has expired or is not yet valid
1
2

错误信息

  • 注意:这个错误的原因在于是系统的时间和docker hub时间不一致,需要做系统时间与网络时间同步
# step 1:安装时间同步
sudo yum -y install ntp ntpdate

# step 2:同步时间
sudo ntpdate cn.pool.ntp.org

# step 3:查看本机时间
date

# step 4:从新测试
1
2
3
4
5
6
7
8
9
10

date

最近更新: 2025/03/25, 09:15:48
高级篇 Docker Compose
初识 Kubernetes

← 高级篇 Docker Compose 初识 Kubernetes→

最近更新
01
Kubernetes Helm
04-11
02
Kubernetets Namespace
04-11
03
Kubernetes Ingress
04-11
更多文章>
Theme by Vdoing | Copyright © 2021-2025 光年矩阵科技有限公司 | All Rights Reserved. |
渝ICP备2021888888号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×