Docker基础篇之Docker常规软件安装

news2025/1/23 22:39:41

文章目录

    • 1. 总体步骤
    • 2. 安装tomcat
    • 3. 安装Mysql
    • 4. 安装Redis

1. 总体步骤

安装软件的总体步骤如下所示:

  • 搜索镜像
  • 拉取镜像
  • 查看镜像
  • 启动镜像
  • 停止容器
  • 移除容器

2. 安装tomcat

  • docker hub上查找tomcat镜像

在这里插入图片描述
或者使用一下命令查找:

docker search tomcat

在这里插入图片描述

  • 拉取tomcat镜像
docker pull tomcat

在这里插入图片描述

然后使用docker images查看下载好的镜像;

在这里插入图片描述

  • 使用tomcat镜像创建容器实例
docker run -it -p 8080:8080 tomcat

-p:小写:主机端口:docker容器端口
-P:大写:随机分配端口
i:交互
t:终端
d:后台

在这里插入图片描述

  • 访问tomcat首页

在这里插入图片描述

发现访问状态为404,这是因为新版本的tomcat做了一些更新,我需要修改容器的一些配置

进入容器

docker exec -it d5349c9071c3 /bin/bash
ls -l

在这里插入图片描述

Tomcat的主页面是放在webapps下面的

在这里插入图片描述

可以发现webapps下面什么都没有,其实真正的内容在webapps.dist中

我们删除掉webapps,并将webapp.dist修改为webapps

rm -r webapps
mv webapps.dist webapps

在这里插入图片描述
再次访问Tomcat首页:

在这里插入图片描述

  • 停止并删除
docker stop d5349c9071c3
docker rm d5349c9071c3b5c004aa342d4e0ace2086c7461177d89cb67c569e9b97f268bc

3. 安装Mysql

  • 拉取mysql镜像
docker pull mysql
docker images

在这里插入图片描述

  • 使用mysql镜像创建容器
docker run -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

在这里插入图片描述
在这里插入图片描述

然后我们进入容器实例里面:

docker exec -it 3393815aff78 /bin/bash
mysql -uroot -p

在这里插入图片描述

现在我们使用navicat连接mysql:
在这里插入图片描述
现在创建一个库和表:
在这里插入图片描述
然后我插入数据:
在这里插入图片描述
以上docker就成功部署了mysql服务,现在思考一个问题,如果我们一个mysql容器里面装的数据很重要,但是有人给这个容器给删除了怎么办?这种情况在线上是很严重的,为了保证容器被删除mysql数据不丢失,我们需要数据卷挂载技术。

重新新建mysql实例

docker run -d -p 3308:3306 \
--privileged=true \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mysql/log:/var/log/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mysql/data:/var/lib/mysql \
-v /Users/jackchai/Desktop/lottory_docker/learndocker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql

在这里插入图片描述
然后我们新建My.cnf,并通过容器卷同步给mysql容器实例(解决中文乱码问题):
在conf目录下创建my.cnf文件:

[client]
default_character_set=utf8
[mysqlId]
collation_server=utf8_general_ci
character_set_server=utf8             

然后重启一下mysql。

docker restart mysql

4. 安装Redis

  • 拉取镜像

在这里插入图片描述

  • 启动容器
docker run -d -p 6379:6379 redis

在这里插入图片描述
然后我们进入容器内部:

docker exec -it 6f3fc0e73503 /bin/bash

在这里插入图片描述

和mysql一样,一旦容器删除数据就会丢失,所以我们同样需要挂载数据卷

#将redis的配置文件拷贝到本地(配置自行修改)
cp /myredis/redis.conf /app/redis/
#创建redis容器
docker run -d -p 6379:6379 --privileged=true \
-v /app/redis/redis.conf:/etc/redis/redis.conf \
-v /app/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf
#连接启动redis-cli

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

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

相关文章

微信小游戏性能优化解决方案全新发布

小游戏凭借其简单易上手、玩法多样、互动性强的特点,迅速在市场中崭露头角。MMO、ARPG、卡牌等游戏类型也纷纷入局。玩家对启动时间长、发热、加载缓慢、闪退等问题也越来越敏感。 为了突破这些性能瓶颈,UWA全新发布了针对微信小游戏的性能优化解决方案…

240.搜索二维矩阵

题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,…

深度学习中torch.max函数的作用

文章目录 解释代码举例 解释 torch.max 是 PyTorch 中的一个函数,用于在张量中沿指定维度计算最大值。它有两种用法: ① 如果只提供一个输入张量,则返回该张量中的最大值和对应的索引。     ② 如果提供两个输入张量,则返回两…

算法学习笔记——时间复杂度和空间复杂度

时间复杂度和空间复杂度 常数操作: 固定时间的操作,执行时间和数据量无关 位运算 > 算数运算 > 寻址 > 哈希运算,都是常数操作,哈希运算操作时间最慢 链表的get(i)方法不是常数操作,因为链表不是连续的存储…

【第三节】C/C++数据结构之栈与队列

目录 一、数据结构-栈 1.1 栈的定义 1.2 栈的 ADT (Abstract Data Type) 1.3 栈的顺序存储结构及实现 二、数据结构-队列 2.1 队列的定义 2.2 队列的 ADT 2.3 队列的顺序存储结构与实现 2.4 优先队列 2.5 各种队列异同点 一、数据结构-栈 1.1 栈的定义 栈(Stack)可…

[数据集][目标检测]道路圆石墩检测数据集VOC+YOLO格式461张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):462 标注数量(xml文件个数):462 标注数量(txt文件个数):462 标注类别…

node创建项目

前言 (一)、Web Web的开发体系中,分成前端,后端,工具,三个主要的领域。 前端主要由由浏览器,HTMLCSS浏览器端JS完成。 后端主要是由Web服务器,数据库,动态脚本语言&a…

初识 peerDependencies

目录 初步认识 peerDependencies semver 介绍 # 摘要 # 简介 # 语义化版本控制规范(SemVer) # 合法语义化版本的巴科斯范式语法 # 为什么要使用语义化的版本控制? # FAQ 示例讲解:vue-router 插件 # 说明 声明 验证 初…

信息系统项目管理师0143:过程概述(9项目范围管理—9.2项目范围管理过程—9.2.1过程概述)

点击查看专栏目录 文章目录 9.2 项目范围管理过程9.2.1 过程概述 9.2 项目范围管理过程 9.2.1 过程概述 项目范围管理过程包括: 规划范围管理:为了记录如何定义、确认和控制项目范围及产品范围,创建范围管理计划。收集需求:为了…

以sqlilabs靶场为例,讲解SQL注入攻击原理【18-24关】

【less-18】 打开时,获取了自己的IP地址。,通过分析源码知道,会将用户的user-agent作为参数记录到数据库中。 提交的是信息有user-Agent、IP、uname信息。 此时可以借助Burp Suite 工具,修改user_agent,实现sql注入。…

小白级教程—安装Ubuntu 20.04 LTS服务器

下载 本教程将使用20.04版进行教学 由于官方速度可能有点慢,可以下方的使用清华镜像下载 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/ 点击20.24版本 选择 ubuntu-20.04.6-live-server-amd64.iso 新建虚拟机 下载好后 我们使用 VMware 打开它 这里选…

103、python-第三阶段-13-大数据分布式集群运行

hadoop集群 4个多G的数据在集群中用了2.9分钟,如果在一个机器上运行大概需要十几分钟,所以集群速度还是很快的。

sql 查询 不满足 (一个教师编号 的角色 (role =‘2‘or(role=‘1‘and role =‘0‘)) )

sql 查询 不满足 (一个教师编号 的角色 (role 2’or(role1’and role ‘0’)) ) 准备 一个 teacher 表 和数据 表 teacher 和数据 -- ---------------------------- -- Table structure for teacher -- …

短期业绩波动较大被券商不予评级,金种子酒背靠华润如何发力?

《港湾商业观察》施子夫 王璐 虽然一季度成功实现了扭亏为盈,但从近些年年报来看,金种子酒(600199.SH)的业绩压力依然不容小觑。白酒主业萎靡不振时,金种子酒开始了剥离非主营业务。 这些措施能否有利于主业向好&am…

MQ之初识kafka

1. MQ简介 1.1 MQ的诞生背景 以前网络上的计算机(或者说不同的进程)传递数据,通信都是点对点的,而且要实现相同的协议(HTTP、 TCP、WebService)。1983 年的时候,有个在 MIT 工作的印度小伙突发…

软理复习范围

1.直觉主义逻辑常采用三值逻辑来处理命题的真值,包括以下三个真值: 真(True):表示命题是确定为真的。假(False):表示命题是确定为假的。未知(Unknown)&#…

Keil编译bin格式固件方法

打开Option选项卡,选择User,在After Build/Rebuild下面增加以下命令: fromelf.exe --bin -o "L.bin" "#L"

短剧APP开发,推动短剧市场的全新发展

近几年,短剧火爆出圈,迎来了爆发式增长态势,市场规模一跃达到了百亿元!短剧节奏快、剧情爽、情节猎奇,极大地满足了用户的追剧需求,深受大众的喜爱。 短剧巨大的市场发展前景也衍生出了各种新的短剧发展赛…

FSR 3 - Upscaling for Unity(性能优化工具)

FSR 3 - Upscaling for Unity已在Unity版本2021、2022和2023中进行了测试! 使用FSR 3 Upscaling for Unity提升帧数! FSR 3是一种升级技术,它基于较低分辨率的输入创建高质量和高分辨率的帧。通过使用这种方法,您的项目可以在极低的分辨率下运行,而不会损失视觉质量,也不…

连锁实体店同城引流的两种方式

连锁实体店开在哪里,它的影响力就在哪里,所以,连锁店的选址很重要,这点是毋庸置疑的,今天我们聊聊连锁实体店引流的两种方式。 1、同城引流新客到店 实体店的覆盖范围在3-5公里 使用抖音同城引流快速覆盖这个范围内的…