Docker 常用服务 安装使用 教程

Docker安装常用服务

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.mysql容器启动配置
docker run --name mysql -v /root/mysql/data:/var/lib/mysql -v /home/mysql/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:tag
    配置项说明:
  • -v /root/mysql/data:/var/lib/mysql:挂载数据
  • -v /home/mysql/my.cnf:/etc/my.cnf:挂载mysql配置文件(根据自己容器内的配置位置,可以进入容器使用find / -name my.cnf 查询配置文件所在位置)
  • -e MYSQL_ROOT_PASSWORD=root:设置root账号的密码
    
# 6.通过其他客户端访问 如在window系统|macos系统使用客户端工具访问可以实现数据的备份(客户端工具方式)
# 7.将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

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进行连接)
docker run --name redis -v 宿主机目录:/data -p 6379:6379 -d redis:tag redis-server --appendonly yes(开启持久化)
# 4.查看启动日志
docker logs -t -f 容器id|容器名称
# 5.进入容器内部查看
docker exec -it 容器id|名称 bash
# 6.加载外部自定义配置启动redis容器
第一种:下载对应版本的redis,把redis.conf上传到宿主机,修改自己需要修改的配置然后起动(覆盖全部配置启动)
(1)默认情况下redis官方镜像中没有redis.conf配置文件 需要去官网下载指定版本的配置文件
(2)wget http://download.redis.io/releases/redis-5.0.8.tar.gz 下载官方安装包
(3)将官方安装包中配置文件进行复制到宿主机指定目录中如 /data/redis_data/redis.conf文件
(4)修改需要自定义的配置
         bind 0.0.0.0    ----------开启远程访问
         appendonly yes    ---------开启持久化
         appendfilename "appendonly.aof"    ----------持久化文件名称
(5)加载配置启动
    docker run --name redis -v /data/redis_data/data:/data -v /data/redis_data/redis.conf:/etc/redis/redis.conf --restart=always -p 6379:6379 -d redis:4.0.14 redis-server /etc/redis/redis.conf
    解释:
        -v /data/redis_data/data:/data:挂在数据到宿主机,实现持久化
        -v /data/redis_data/redis.conf:/etc/redis/redis.conf:挂在配置文件
        --restart=always:设置redis容器随docker启动而自启动
        redis-server /etc/redis/redis.conf:指定redis在docker中的配置文件路径,后台启动redis
第二种:创建一个redis.conf文件,然后配置你所需要的修改的配置,然后启动(覆盖局部配置启动)(推荐使用这种,因为不会修改它一些默认配置)
(1)创建redis.conf文件(/data/redis_data/目录下)
    touch redis.conf
(2)修改redis.conf文件
    vi redis.conf
(3)添加如下配置
    bind 0.0.0.0    ----------开启远程访问
    appendonly yes    ---------开启持久化
    appendfilename "appendonly.aof"    ----------持久化文件名称
(4)加载创建的配置启动
    docker run --name redis -v /data/redis_data:/data -p 6379:6379 -d redis:5.0.10 redis-server /data/redis.conf

3、 安装Nginx

# 1.在docker hub搜索nginx
docker search nginx
# 2.拉取nginx镜像到本地(如下下载没有指定版本默认下载最新版本)
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
afb6ec6fdc1c: Pull complete
b90c53a0b692: Pull complete
11fa52a0fdc0: Pull complete
Digest: sha256:30dfa439718a17baafefadf16c5e7c9d0a1cde97b4fd84f63b69e13513be7097
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
# 3.启动nginx容器(基础)
docker run --name nginx01 -p 80:80 -d nginx:1.19.10
# 4.进入容器
docker exec -it nginx01 bash
查找nginx目录:
find / -name 'nginx' -------------------关于nginx的所有目录
find / -name 'nginx.conf' --------------nginx的配置文件所在目录(/etc/nginx/nginx.conf
find / -name 'index.html' --------------nginx的index页面所在目录也是nginx的资源目录(/usr/share/nginx/html/index.html
# 5.然后退出容器到宿主机
exit
# 6.复制配置文件到宿主机
docker cp nginx01(容器id|容器名称):/etc/nginx/nginx.conf 宿主机目录
例如:docker cp nginx-test:/etc/nginx/nginx.conf ./
# 7.挂在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.19.10
nginx可以作为负载均衡,也可以作为服务器使用。

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 bash
# 5.将webapps目录挂载在外部
docker run -p 8080:8080 -v /root/webapps:/usr/local/tomcat/webapps -d --name mytomcat tomcat
#注意:如果挂载server.xml配置文件,挂载的路径要精确到server.xml文件
#如下示例:
docker run --name hkht-tomcat -p 8081:8081 -v /data/hkht/tomcat/webapps:/usr/local/tomcat/webapps -v /data/hkht/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml -d tomcat:8.0-jre8
#这里再注意:下面的图片中挂载配置文件是直接挂载到conf文件,暂时不知道什么原因,但是在实践中挂载到conf不精确到配置文件,访问前端资源是无法访问的(前后端不分离的web项目)。
#还有就是这里选用tomcat的8.0-jre8镜像而不是单独的版本号8.0,因为没有单独的下载jdk镜像,如果要是用8.0需采用dockerfile进行打包,我是直接下载了包含jre的tomcat,这样就可以运行项目了(前后端不分离的web项目)。

5、 安装MongoDB数据库

# 1.运行mongDB
docker run -d -p 27017:27017 --name mymongo mongo ---无须权限
docker logs -f mymongo ---查看mongo运行日志
# 2.进入mongodb容器
docker exec -it mymongo bash
直接执行mongo命令进行操作
# 3.常见具有权限的容器
docker run --name mymongo -p 27017:27017 -d mongo --auth
# 4.进入容器配置用户名密码
mongo
use admin 选择admin库
db.createUser({user:"root",pwd:"root",roles:[{role:'root',db:'admin'}]}) //创建用户,此用户创建成功,则后续操作都需要用户认证
exit
# 5.将mongoDB中数据目录映射到宿主机中
docker run -d -p 27017:27017 -v /root/mongo/data:/data/db --name mymongo mongo

6、 安装ElasticSearch

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

0.拉取镜像运行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. 预先配置

# 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]

2.启动EleasticSearch容器

# 0.复制容器中data目录到宿主机中
docker cp 容器id:/usr/share/share/elasticsearch/data /root/es
# 1.运行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

3.安装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="xiaochen" -m="es with IKAnalyzer" 容器id xiaochen/elasticsearch:6.4.2

4. 安装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

7.docker可视化工具

7.1 安装Portainer

官方安装说明: https://www.portainer.io/installation/
[root@ubuntu1804 ~]#docker pull portainer/portainer
# -d:后台启动,-p:映射端口,--name:容器名称,--restart=always:开机自启动,-v:挂在
[root@ubuntu1804 ~]#docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
20db26b67b791648c2ef6aee444a5226a9c897ebcf0160050e722dbf4a4906e3
[root@ubuntu1804 ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
20db26b67b79 portainer/portainer "/portainer" 5 seconds ago Up 4 seconds 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp portainer

7.2 登录和使用Portainer

用浏览器访问: http://localhost:9000

7.3 忘记admin的密码,重置并查看密码

#查看容器
docker ps
#查看容器详情
docker inspect 容器id/名称
#复制图中目录地址
#执行如下命令:docker run --rm -v 挂在目录地址:/data portainer /helper-reset-password
docker run --rm -v /var/lib/docker/volumes/436d93252d9a382768eab7e9b7a29b8a10cbbf990257e37c9171eedc8df21c2e/_data:/data portainer/helper-reset-password
#然后重新启动portainer
docker start portainer
#再次访问登录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/56686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb和redis的用途

MongoDB和Redis都是常见的NoSQL数据库&#xff0c;它们有不同的特点和用途。 MongoDB的主要特点和用途&#xff1a; 数据存储&#xff1a;MongoDB是一种面向文档的数据库&#xff0c;以JSON样式的BSON文档&#xff08;二进制JSON&#xff09;的形式存储数据。它支持复杂的数据…

【从零学习python 】63.正则表达式中的re.Match类及其属性和方法介绍

文章目录 re.Match类介绍进阶案例 re.Match类介绍 当我们调用re.match方法、re.search方法&#xff0c;或者对re.finditer方法的结果进行迭代时&#xff0c;拿到的数据类型都是re.Match对象。 x re.match(rh,hello) y re.search(re,hello) z re.finditer(rl,hello) print(…

[Unity] 单例设计模式, 可供继承的单例组件模板类

一个可供继承的单例组件模板类: public class SingletonComponent<TComponent> : Componentwhere TComponent : SingletonComponent<TComponent> {static TComponent _instance;private static TComponent GetOrFindOrCreateComponent(){// 双检索if (_instance …

树莓派使用Nginx+cpolar内网穿透实现无公网IP访问内网本地站点

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx&#xff08;发音为“engine-x”&#xff09;可以将您的树莓派变成一个强大的 Web 服务器&#xff0c;可以用于托管网站或 Web 应用程序。相比其他 Web 服务器&#xff0c;Ngi…

Python爬取旅游网站数据机票酒店价格对比分析

本文将介绍如何使用Python爬虫从旅游网站上获取机票和酒店的价格数据&#xff0c;并实现价格对比分析&#xff0c;帮助你做出明智的旅行决策。我们提供了完善的方案和代码&#xff0c;让你能够轻松操作并获得实际价值。 使用Python爬虫获取旅游网站上的机票和酒店价格数据&…

docker学习(1)

1、容器与虚拟机的对比&#xff1a; 虚拟机&#xff08;virtual machine&#xff09;就是带环境安装的一种解决方案。 它可以在一种操作系统里面运行另一种操作系统&#xff0c;比如在Windows10系统里面运行Linux系统CentOS7。 应用程序对此毫无感知&#xff0c;因为虚拟机看…

HTML+CSS 查漏补缺

目录 1&#xff0c;HTML1&#xff0c;尺寸的百分比1&#xff0c;普通元素2&#xff0c;绝对&#xff08;固定&#xff09;定位元素3&#xff0c;常见百分比 2&#xff0c;form 表单元素1&#xff0c;form2&#xff0c;button3&#xff0c;label4&#xff0c;outline5&#xff0…

今天学习了弗洛伊德算法(floyed)

我自己写的模板嘿嘿Dijkstra算法SPFA算法但是我知道还有这些&#xff0c;但是今天是周末哎&#xff0c;我有点不想学了&#xff0c;我今天学的是比较差劲的一个算法&#xff08;但是它好像比较好记啊&#xff09;&#xff0c;改天再学其他比较好一点的算法加强自己 #include&l…

TCP/IP网络江湖武艺传承:物理层与通信江湖的幕后(物理层中篇:物理层与现代通信技术)

目录 〇、引言:进入现代通信技术的江湖 一、数字信号与模拟信号:传承与差异

mysql备份与还原

mysql日志管理 、备份与恢复 备份的主要目的是灾难恢复&#xff0c;备份还可以测试应用、回滚数据修改、查询历史数据、审计等。 而备份、恢复中&#xff0c;日志起到了很重要的作用 #######前言&#xff1a;日志⭐⭐ MySQL 的日志默认保存位置为 /usr/local/mysql/data ##配…

uni.uploadFile上传 PHP接收不到

开始这样&#xff0c;后端$file $request->file(file);接收不到 数据跑到param中去了 去掉Content-Type&#xff0c;就能接收到了 param只剩下

Matlab(基本操作与矩阵输入)

目录 1.Matlab视窗详读 2.基本操作与矩阵输入 2.1 运算符的优先级 2.2 初等数学函数 2.3 嵌入函数 2.4 特殊变量和常量 2.5 Matlab的优先级调用 2.6 数字显示格式长 2.7 命令行中端 2.8 部分函数 2.9 向量和矩阵 2.10 数组索引 2.11 串联矩阵 2.12 生成数值序列 …

SpringCloud学习笔记(八)_使用Apollo做配置中心

由于Apollo支持的图形化界面相对于我们更加的友好&#xff0c;所以此次我们使用Apollo来做配置中心 本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置。 Apollo官方文档https://github.com/ctripcorp/apollo/wiki 1.下载依赖 从https://github.com/ctripcorp/apo…

Docker:如何删除已存在的镜像

要删除已存在的 Docker 镜像&#xff0c;您可以使用 docker rmi 命令。 以下是完整的流程 步骤1&#xff1a;停止容器 如容器正在运行需要停止正在运行的 Docker 容器&#xff0c;您可以使用 docker stop 命令。 以下是停止容器的步骤&#xff1a; 首先&#xff0c;使用 do…

云LIS云实验室信息管理系统源码,支持IIS独立部署,Docker部署

云LIS技术架构&#xff1a;Asp.NET CORE 3.1 MVC SQLserver Redis等。 云LIS系统是医院信息管理的重要组成部分之一&#xff0c;它是一个基于B/S架构开发的实验室信息管理系统。整个系统的运行基于WEB层面&#xff0c;只需要在对应的工作台安装一个浏览器软件&#xff0c;有外…

AxureRP制作静态站点发布互联网,内网穿透实现公网访问

AxureRP制作静态站点发布互联网&#xff0c;内网穿透实现公网访问 文章目录 AxureRP制作静态站点发布互联网&#xff0c;内网穿透实现公网访问前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4…

【C++】C++ 引用详解 ⑧ ( 普通引用与常量引用 | 常量引用概念与语法 )

文章目录 一、普通引用1、概念说明2、代码示例 - 普通引用 二、常量引用1、常量引用引入2、常量引用概念与语法2、代码示例 - 常量引用不可修改 一、普通引用 1、概念说明 之前的 【C】C 引用详解 ① ~ ⑦ 博客中 , 讲解的都是 普通引用 , 也就是 将 普通变量 赋值给 引用 , 过…

微信开发之一键创建微信群聊的技术实现

创建微信群 本接口为敏感接口&#xff0c;请查阅调用规范手册创建后&#xff0c;手机上不会显示该群&#xff0c;往该群主动发条消息手机即可显示。 请求URL&#xff1a; http://域名地址/createChatroom 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-…

时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测

时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测 目录 时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab实现SO-CNN-GRU蛇群算法优化卷积门控循环单…

iOS import包

Frameworks Frameworks 顾名思义就是框架&#xff0c;是第三方打包完成看不到源码&#xff0c;可以直接使用的 在项目中引用方式 OC 引用某一个文件&#xff0c;Frameworks一般会提供一个h文件引用全部其他文件 #import <JLRoutes/JLRoutes.h>swift 引用一个包&#x…