新手小白学习docker第六弹------Docker常规安装(安装tomcat、mysql、redis)
目录
- 1 总体步骤
- 2 安装tomcat
- 2.1 搜索镜像
- 2.2 拉取镜像
- 2.3 查看镜像
- 2.4 启动镜像
- 2.5 访问猫首页
- 3 安装mysql
- 3.1 搜索镜像
- 3.2 拉取镜像
- 3.3 启动镜像
- 4 安装redis
- 4.1 拉取镜像
- 4.2 启动镜像(法1基础版)
- 4.3 配置文件
- 4.3.1 在宿主机下新建目录 /app/redis
- 4.3.2 将一个redis.conf文件模板拷贝进 /app/redis 目录下
- 4.3.3 /app/redis 目录下修改redis.conf文件
- 4.4 启动镜像(法2高阶版)
- 4.5 检验
- 5 后记
1 总体步骤
1 搜索镜像
2 拉取镜像
3 查看镜像
4 启动镜像(注意服务端口映射)
5 停止容器
6 移除容器
2 安装tomcat
2.1 搜索镜像
docker hub上面查找 billygoo/tomcat8-jdk8 镜像
docker search billygoo/tomcat8-jdk8
2.2 拉取镜像
从docker hub上拉取 billygoo/tomcat8-jdk8 镜像到本地
docker pull billygoo/tomcat8-jdk8
2.3 查看镜像
docker images 查看是否有拉取到的镜像
docker images billygoo/tomcat8-jdk8
2.4 启动镜像
使用 billygoo/tomcat8-jdk8 镜像创建容器实例(也可以说是运行镜像)
docker run -it -p 8080:8080 billygoo/tomcat8-jdk8
-p 小写,主机端口:docker容器端口
-P大写,随机分配端口
i: 交互
t: 终端
d: 后台
2.5 访问猫首页
在虚拟机自带的浏览器访问自己主机IP地址:8080
就可以访问到猫啦
为什么不直接拉取 tomcat 呢?
其实你可以先试试,我已经试过了,直接访问不到猫的首页,需要进行配置(将webapps.dist目录换成webapps)所以我这里就直接拉取 billygoo/tomcat8-jdk8 镜像了,对,学习就是为了减少麻烦,所以这样我就减少了麻烦。
3 安装mysql
3.1 搜索镜像
在docker hub上面查找mysql镜像
docker search mysql
3.2 拉取镜像
从docker hub上拉取mysql镜像到本地标签为5.7
docker pull mysql:5.7
查看该镜像
docker images mysql:5.7
3.3 启动镜像
使用mysql:5.7镜像创建容器
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps
docker exec -it 容器ID /bin/bash
进入数据库进行操作
mysql -uroot -p
create database db01;
use db01;
create table aa(id int, name varchar(20));
insert into aa values(1,'z3');
select * from aa;
4 安装redis
4.1 拉取镜像
从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8
docker pull redis:6.0.8
这里是基本的命令,后文有一个高级一点的,即使用了容器卷,保证数据更安全。
4.2 启动镜像(法1基础版)
docker run -d -p 6379:6379 redis:6.0.8
docker exec -it 容器ID /bin/bash
redis-cli
set k1 v1
get k1
ping
4.3 配置文件
4.3.1 在宿主机下新建目录 /app/redis
mkdir -p /app/redis/
4.3.2 将一个redis.conf文件模板拷贝进 /app/redis 目录下
没有模板就到网上找一个,然后跟着下面的步骤修改就可以的
cd /app/redis/
vim redis.conf
4.3.3 /app/redis 目录下修改redis.conf文件
1 开启redis验证
(可选)
requirepass 123
2 允许redis外地连接必须
注释掉# bind 127.0.0.1
3 daemonize no必须
将daemonize yes注释起来或者daemonize no
设置,因为该配置和 docker run中-d参数冲突,会导致容器一直启动失败
4 开启redis数据持久化appendonly yes(可选)
这里第一点,注意要把其他的requirepass注释掉,只留下requirepass 123,或者都注释掉,鄙人的血泪教训,解决了半天,真是服了。
4.4 启动镜像(法2高阶版)
使用redis:6.0.8镜像创建容器
这里是用了数据卷的
docker run -p 6379:6379 --name myr3 --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
docker exec -it myr3 /bin/bash
redis-cli
auth 123
set k1 v1
get k1
4.5 检验
证明docker启动使用了我们自己指定的配置文件
修改配置文件之前
select 15
我们用的配置文件,数据库默认16个
在/app/redis修改配置文件
databases 10
宿主机的修改会同步给docker容器里面的配置
记得重启服务
测试redis-cli连接上来第二次
docker restart myr3
redis-cli
auth 123
select 9
select 10
select 15
5 后记
我今天看到隔壁实验室的一对情侣了,他俩散步,那股害羞劲,隔着很远都传给我了。我跟人家暧昧的时候咋不是这样的呢~
恋爱还是看别人谈才有意思!
好吧,BB,如果文档对你有帮助的话,给我点个赞赞啊!
谢谢啦,爱情和事业总要丰收一个撒~
相关文章:

新手小白学习docker第六弹------Docker常规安装(安装tomcat、mysql、redis)
目录 1 总体步骤2 安装tomcat2.1 搜索镜像2.2 拉取镜像2.3 查看镜像2.4 启动镜像2.5 访问猫首页 3 安装mysql3.1 搜索镜像3.2 拉取镜像3.3 启动镜像 4 安装redis4.1 拉取镜像4.2 启动镜像(法1基础版)4.3 配置文件4.3.1 在宿主机下新建目录 /app/redis4.3…...

ReactPress与WordPress:两大开源发布平台的对比与选择
ReactPress与WordPress:两大开源发布平台的对比与选择 在当今数字化时代,内容管理系统(CMS)已成为各类网站和应用的核心组成部分。两款备受欢迎的开源发布平台——ReactPress和WordPress,各自拥有独特的优势和特点&am…...

机器情绪及抑郁症算法
🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月12日17点02分 点击开启你的论文编程之旅https://www.aspiringcode.com/content?id17230869054974 计算机来理解你的情绪&a…...

01-Ajax入门与axios使用、URL知识
欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...

第四十五章 Vue之Vuex模块化创建(module)
目录 一、引言 二、模块化拆分创建方式 三、模块化拆分完整代码 3.1. index.js 3.2. module1.js 3.3. module2.js 3.4. module3.js 3.5. main.js 3.6. App.vue 3.7. Son1.vue 3.8. Son2.vue 四、访问模块module的state 五、访问模块中的getters 六、mutati…...

[2024最新] macOS 发起 Bilibili 直播(不使用 OBS)
文章目录 1、B站账号 主播认证2、开启直播3、直播设置添加素材、隐私设置指定窗口添加/删除 窗口 4、其它说明官方直播帮助中心直播工具教程 目前搜到的 macOS 直播教程都比较古早,大部分都使用 OBS,一番探索下来,发现目前已经不需要 OBS了&a…...
Netty实现WebSocket Client三种典型方式
一、简单版本 package com.ptc.ai.box.biz.relay.client;import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext;…...

软间隔支持向量机
软间隔支持向量机 我们先直接给出软间隔支持向量机的形式: P min ω , b , ζ 1 2 ∥ ω ∥ 2 2 − C ∑ i 1 m ζ i s . t . y i ( ω x i b ) ≥ 1 − ζ i , i 1 , 2 , 3.. m ζ i ≥ 0 , i 1 , 2 , 3.. m P \min_{\omega,b,\zeta} \frac{1}{2}\Ve…...
在C++上实现反射用法
0. 简介 最近看很多端到端的工作,发现大多数都是基于mmdet3d来做的,而这个里面用的比较多的形式就是反射机制,这样其实可以比较好的通过类似plugin的形式完成模型模块的插入。当然我们这里不是来分析python的反射机制的。我们这篇文章主要来…...

【学术会议介绍,SPIE 出版】第四届计算机图形学、人工智能与数据处理国际学术会议 (ICCAID 2024,12月13-15日)
第四届计算机图形学、人工智能与数据处理国际学术会议 2024 4th International Conference on Computer Graphics, Artificial Intelligence and Data Processing (ICCAID 2024) 重要信息 大会官网:www.iccaid.net 大会时间:2024年12月13-15日 大会地…...
网络百问百答(一)
什么是链接? 链接是指两个设备之间的连接,它包括用于一个设备能够与另一个设备通信的电缆类型和协议。OSI参考模型的层次是什么? 有7个OSI层:物理层,数据链路层,网络层,传输层,会话层…...

【深圳大学】数据结构A+攻略(计软版)
1. 考试 1.1 形式 分为平时,笔试,机试三部分。其中: 平时占30%,包含平时OJ测验和课堂练习,注意这个可能会因老师的不同和课题组的新策略而改变。笔试占60%,是分值占比的主要部分。机试占10%。 1.2 题型…...

解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第4章 架构
推荐大佬做的讲解 可以帮助加深理解 ARM架构及汇编 Cortex-M3 和 Cortex-M4 处理器都是基于ARMv7-M架构 需要完成对编程模型、异常(如中断)如何处理、存储器映射、如何使用外设以及如何使用微控制器供应商提供的软件驱动库文件等 Cortex-M3和Cortex-M4处理器有两种操作状态…...

探索 Python HTTP 的瑞士军刀:Requests 库
文章目录 探索 Python HTTP 的瑞士军刀:Requests 库第一部分:背景介绍第二部分:Requests 库是什么?第三部分:如何安装 Requests 库?第四部分:Requests 库的基本函数使用方法第五部分:…...
PostgreSQL 页损坏如何修复
PostgreSQL 错误:关系 base/46501/52712 中的块 480 存在无效的页。 当我们在使用 PostgreSQL 数据库的时候,如果服务器发生 CRASH 或者断电等异常情况的时候,有可能会遇到上面的这个报错信息。那么我们如何去修复这个数据呢,以及…...
Leetcode 75 Sort colors
题意:荷兰国旗问题,给一个数组[0,0,2,1,0],构造成[0,0,0,1,2]的形式,分成三块 https://leetcode.com/problems/sort-colors/description/ 题解: 在任意时刻,i 左边的数都是 0,k 右边的数都是 …...
如何进行数据库连接池的参数优化?
以下是进行数据库连接池参数优化的一些方法: 一、确定合适的初始连接数: 考虑因素:数据库的规模、应用程序的启动需求以及预期的初始负载。如果数据库规模较小且应用程序启动时对数据库的即时访问需求不高,可以将初始连接数设置…...

有了miniconda,再也不用担心python、nodejs、go的版本问题了
哈喽,大家好!我是「励志前端小黑哥」,我带着最新发布的文章又来了! 专注前端领域10年,专门分享那些没用的前端知识! 今天要分享的内容,是一个免费的环境管理工具,它叫Miniconda&…...
openresty入门教程:init_by_lua_block
init_by_lua_block 是 Nginx 配置中用于在 Nginx 启动时执行 Lua 脚本的一个指令。这个指令通常用于初始化全局变量、设置共享内存,或者执行一些需要在服务器启动时完成的准备工作。 以下是一个简单的 init_by_lua_block 使用示例: 1. 安装 Nginx 和 L…...

sol机器人pump机器人如何实现盈利的?什么是Pump 扫链机器人?
什么是Pump 扫链机器人,它的盈利逻辑优化策略是什么? Pump 扫链机器人,通过智能化、自动化的买卖操作帮助投资者实现快速盈利。在此基础上,我们对该机器人的盈利逻辑进行了深度优化,涵盖了买入策略和止盈策略的各个方面…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...

C++中vector类型的介绍和使用
文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...
Electron简介(附电子书学习资料)
一、什么是Electron? Electron 是一个由 GitHub 开发的 开源框架,允许开发者使用 Web技术(HTML、CSS、JavaScript) 构建跨平台的桌面应用程序(Windows、macOS、Linux)。它将 Chromium浏览器内核 和 Node.j…...