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

文章目录

    • 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.mzph.cn/news/849534.shtml

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

相关文章

Open AI又出王炸GPT-4,目测一大波人的饭碗要碎了...

前言 在科技的惊涛骇浪中,每一次技术的飞跃都预示着新时代的曙光。近日,Open AI公司再次震撼业界,推出了其最新力作——GPT-4,这款被誉为“王炸”的语言模型,以其前所未有的智能水平和创造力,不仅在技术圈…

图算法例子

图算法例子概述 图算法在计算机科学中具有广泛的应用,特别是在网络、路径规划、社交网络分析等领域。这些图算法展示了如何解决各种图相关的问题: 深度优先搜索(DFS):用于遍历图或查找路径。广度优先搜索(BFS):用于最短路径查找或层级遍历。Dijkstra算法:用于单源最短…

echarts学习:如何让y轴显示为带箭头的直线

前言 在我的固有印象中折线图、柱状图等图形中的y轴,应该都是像下图一样是一条末端带箭头的直线。 然而在echarts中y轴的轴线是默认不显示的(这让我很不习惯),因此也就不会显示轴线末端的箭头。 1.让y轴的轴线显示出来 通过将yA…

wx小程序自定义tabbar

1.在app.json文件中,添加自定义tabbar配置:"custom": true "tabBar": {"custom": true,"backgroundColor": "#fafafa","borderStyle": "white","selectedColor": &quo…

5 分钟内构建一个简单的基于 Python 的 GAN

文章目录 一、说明二、代码三、训练四、后记 一、说明 生成对抗网络(GAN)因其能力而在学术界引起轩然大波。机器能够创作出新颖、富有灵感的作品,这让每个人都感到敬畏和恐惧。因此,人们开始好奇,如何构建一个这样的网…

计算机网络面试基础(一)

文章目录 一、HTTP基本概念1.HTTP是什么?2.HTTP 常见的状态码有哪些?3.http常见字段 二、GET和POST1.get和post有什么区别 三、HTTP缓存技术1.HTTP 缓存有哪些实现方式?2.什么是强制缓存?3.什么是协商缓存?(不太懂) 四…

分治算法例子

分治算法概述 分治算法是一种将问题分解为更小的子问题来解决,然后将这些子问题的解合并起来得到原问题的解的算法。这些示例展示了分治算法如何将问题分解为更小的子问题,通过递归和合并来解决复杂问题。以下是两个常见的分治算法示例及其Python实现: 快速排序 (Quick So…

长文预警:九头蛇的进化——Tesla AutoPilot 纯视觉方案解析

九头蛇的进化:Tesla AutoPilot 纯视觉方案解析 前言 本文整理自原文链接,写的非常好,给了博主很多启发,投原创是因为平台机制,希望能被更多人看到。 嘿嘿,漫威粉不要打我←_←不是Hail Hydra&#xff0c…

分享:各种原理测厚仪的发展历程!

板材厚度的检测离不开测厚仪的应用,目前激光测厚仪、射线测厚仪、超声波测厚仪等都已被广泛的应用于板材生产线中,那你了解他们各自的发展历程吗? 激光测厚仪的发展: 激光测厚仪是随着激光技术和CCD(电荷耦合器件&…

swaggerHole:针对swaggerHub的公共API安全扫描工具

关于swaggerHole swaggerHole是一款针对swaggerHub的API安全扫描工具,该工具基于纯Python 3开发,可以帮助广大研究人员检索swaggerHub上公共API的相关敏感信息,整个任务过程均以自动化形式实现,且具备多线程特性和管道模式。 工具…

网络安全实验BUAA-全套实验报告打包

下面是部分BUAA网络安全实验✅的实验内容 : 认识路由器、交换机。掌握路由器配置的基本指令。掌握正确配置路由器的方法,使网络正常工作。 本博客包括网络安全课程所有的实验报告:内容详细,一次下载打包 实验1-路由器配置实验2-AP…

快速搭建高效运营体系,Xinstall App下载自动绑定助您一臂之力

在互联网的浪潮中,App的推广与运营面临着诸多挑战。如何在多变的互联网环境下迅速搭建起能时刻满足用户需求的运营体系,成为了众多企业关注的焦点。今天,我们就来聊聊如何通过Xinstall的App下载自动绑定功能,轻松解决App推广与运营…

PXE、无人值守实验

PXE部署 [roottest2 ~]# systemctl stop firewalld [roottest2 ~]# setenforce 0一、部署tftp服务 [roottest2 ~]# yum -y install tftp-server.x86_64 xinetd.x86_64 [roottest2 ~]# systemctl start tftp [roottest2 ~]# systemctl enable tftp [roottest2 ~]# systemctl …

因为宇宙一片漆黑,所以地球才有昼夜之分,宇宙为什么是黑的?

因为宇宙一片漆黑,所以地球才有昼夜之分,宇宙为什么是黑的? 地球为何会有昼夜之分? 乍一看,这个问题很是简单,当然是因为地球一直在自转了,当地球的一部分被太阳照射时就是白昼,而…

UI框架与MVC模式详解(1)——逻辑与数据分离

【效率最高的耦合方式】 以实际的例子来说明,更容易理解些。 这里从上到下,从左到右共有8个显示项,如果只需要显示这8个,不会做任何改变,数据固定,那么我们只需要最常规的思路去写就好,这是最…

【JSP】如何在IDEA上部署JSP WEB开发项目

以我的课设为例,教大家拿到他人的项目后,如何在IDEA上部署。 需要准备: JDK17(或者JDK13)IntelliJ IDEA 2023.2.6MySQL 8.0Tomcat 9.0 一,新建项目添加文件 1.1复制“位置”的路径 1.2找到该文件夹 1.3…

Python语言兼职:探索、挑战与机遇

Python语言兼职:探索、挑战与机遇 在数字化浪潮汹涌的今天,Python语言因其简洁易懂、功能强大的特点,成为了众多编程爱好者的首选。而兼职Python开发者这一职业,也逐渐成为了一种新兴的工作模式。本文将深入探讨Python语言兼职的…

linux嵌入式设备测试wifi信号强度方法

首先我们要清楚设备具体链接在哪个wifi热点上 执行:nmcli dev wifi list rootubuntu:/home/ubuntu# nmcli dev wifi list IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS > * 14:EB:08:51:7D:20 wifi22222_5G Infr…

米尔NXP i.MX 93开发板的Qt开发指南

1. 概述 Qt 是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。米尔 NXP i.MX 93 开发板(MYD-LMX9X开发板)使用 Qt6.5 版本进行应用开发。在 Qt 应用开发中,推荐使用 Qt…

NSSCTF CRYPTO MISC题解(一)

陇剑杯 2021刷题记录_[陇剑杯 2021]签到-CSDN博客 [陇剑杯 2021]签到 下载附件压缩包,解压后得到 后缀为.pcpang,为流量包,流量分析,使用wireshark打开 {NSSCTF} [陇剑杯 2021]签到 详解-CSDN博客 选择统计里面的协议分级 发现流…