Docker学习(5)—— 在Docker上安装软件

news/2024/5/20 7:48:55/文章来源:https://blog.csdn.net/Archer__13/article/details/128040832

一. 安装Tomcat

1. 下载最新版 

(1) 拉取Tomcat镜像

docker pull tomcat

(2) 查看是否拉取到Tomcat镜像

docker images tomcat

(3) 创建Tomcat容器并启动

docker run -d -p 8080:8080 tomcat

这时访问tomcat首页报404错误,有以下两个原因:①防火墙未关闭8080端口;②由于最新版的版本问题,需要执行步骤(4)

(4) 把webapps.dist目录重命名为webapps

①查看Tomcat容器id

docker ps

②进入Tomcat容器内并以命令行交互

docker exec -it 容器ID /bin/bash

③删掉原本的webapps目录

rm -rf webapps

④将webapps.dist目录重命名为webapps

mv webapps.dist webapps

这时访问tomcat首页就可以访问到了 

2. 下载Tomcat8版本

(1) 拉取Tomcat镜像

docker pull billygoo/tomcat8-jdk8

(2) 查看是否拉取到Tomcat镜像

docker images tomcat

(3) 创建Tomcat容器并启动

docker run -d -p 8080:8080 billygoo/tomcat8-jdk8

这时访问tomcat首页,可以访问到

二. 安装MySQL

1. 简单版 

(1) 拉取mysql镜像

docker pull mysql

(2) 查看是否拉取到mysql镜像

docker images mysql

(3) 创建mysql容器并启动

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

如果端口被占用,则杀死占用3306端口的进程(如果进程杀不掉,说明Mysql 启动了守护进程,我们需要将其关闭掉:service mysqld stop) 

(4) 进入正在运行的mysql容器并以命令行交互

docker exec -it 容器ID /bin/bash

(5) 登录mysql数据库 

mysql -uroot -p

外部(windows)也可以通过本机ip和3306端口号连接到该容器内的mysql,但是会存在中文乱码

(6) 查看字符集编码

SHOW VARIABLES LIKE 'character%';

 可以看到字符编码为latin,我们需要将其改完utf8

2. 实际应用版

 为了防止数据库内的数据丢失,需要使用容器卷。

 (1) 拉取mysql镜像

docker pull mysql

(2) 查看是否拉取到mysql镜像

docker images mysql

(3) 创建mysql容器并启动

docker run -d -p 3306:3306 --privileged=true -v /usr/mysql/log:/var/log/mysql -v /usr/mysql/data:/var/lib/mysql -v /usr/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql

(4) 解决中文乱码问题

在容器外执行以下步骤: 

①在/usr/mysql/conf目录下创建my.cnf文件

vim /usr/mysql/conf/my.cnf

②添加以下内容

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

(5) 重启mysql容器

docker restart 容器ID

(6)  进入正在运行的mysql容器并以命令行交互

docker exec -it 容器ID /bin/bash

(7) 登录mysql数据库 

mysql -uroot -p

(8) 查看字符集编码

SHOW VARIABLES LIKE 'character%';

 可以看到字符集编码已经改完utf8

由于有容器卷,就算该容器被删了,由于容器卷和本机有数据映射,再创建一个新的容器,只要该容器还添加相同的容器卷,就会再次与本机上的数据互通,能够获得之前的数据

三. 安装Redis

四. 安装Nginx

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

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

相关文章

XSS绕过安全狗WAF

今天继续给大家介绍渗透测试相关知识,本文主要内容是XSS绕过安全狗WAF。 一、测试环境搭建 我们使用Vmware虚拟机搭建靶场环境。在Vmware虚拟机上,安装有PHPStudy,如下所示: 然后安装安全狗WAF,安全狗WAF有一系列的…

【kafka】一、kafka介绍

kafka概述 定义 kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。 消息队列 1)解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)可恢复性 系统的一部分组件…

安装Python

搭建 Python 环境 要想能够进行 Python 开发, 就需要搭建好 Python 的环境. 需要安装的环境主要是两个部分: 1、运行环境: Python 2、开发环境: PyCharm 一、安装Python 1.1、官网下载Python 搜索引擎输入 Python 进入Python官网 1.2、找到下载页面 因为是在Windows环境…

npm配置taobao镜像及nrm快速换源工具介绍

文章目录npm配置淘宝镜像1 为什么默认源下载很慢?2 淘宝npm镜像服务器3 切换npm的下包镜像源4 nrmnpm配置淘宝镜像 1 为什么默认源下载很慢? 在使用npm下包的时候,默认从国外的https://registry.npmjs.orgl服务器进行下载,此时&…

前后端分页插件

PageHelper 是一个 MyBatis 的分页插件,支持多种数据库,可查看官网&#xff0c;负责将已经写好的 SQL 语句&#xff0c;进行SQL分页加工。无需你自己去封装以及关心 SQL 分页等问题&#xff0c;支持多种分页方式,如从第0或第一页开始, 使用很方便。 添加依赖 <dependency&…

论文阅读笔记 | 三维目标检测——VoxelNet算法

如有错误&#xff0c;恳请指出。 文章目录1.背景2. 网络结构2.1 体素特征表示2.2 卷积特征提取2.3 RPN网络3. 实验结果paper&#xff1a;《VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection》 1.背景 以往的3d检测器都难免利用了手工设计特征(hand-…

如何根据不同需求给Word文档设置保护?

Word文档可以设置不同的保护模式&#xff0c;我们可以根据不同需求选择合适的方法&#xff0c;下面介绍一下常用的3种方法。 方法一&#xff1a; 如果不想Word文档被随意打开&#xff0c;我们可以设置打开密码&#xff0c;只有输入正确的密码才能打开文件。 首先&#xff0c…

python面向对象(上)

python面向对象上命名规则对象的创建创建类对象创建实例对象修改增加类属性构造方法构造实例方法不带变量带变量构造方法小例子构造类方法构造静态方法运算符的重载比较运算符重载字符串重载索引或切片重载索引或切片重载检查成员重载重载小结持续更新中~~~~~~~~先上个例子&…

古人的名与字、号、讳、谥有什么区别

古人复杂的名字 这个世界上想来是不存在没有名字的人&#xff0c;即便真的有人没名字&#xff0c;也会被外人赠予姓名&#xff0c;比如说一些古人典籍里的“无名氏”&#xff0c;就是专门用来形容那些没有名字也不清楚根脚的人&#xff0c;即便是现如今一些作品不知道作者是谁…

国外服务器采取数据备份和灾难恢复的重要性

在国外服务器的使用中&#xff0c;数据的安全性和完整性是任何组织都不能忽视的问题。丢失数据可能会对业务造成毁灭性的影响&#xff0c;因此必须有一个完善的数据备份和灾难恢复计划。 什么是备份? 备份将数据复制到辅助形式&#xff0c;如存档文件&#xff0c;在灾难发生时…

C++:函数指针进阶:看完还不用std::function来捶我

1&#xff1a;函数指针的背景 我们先简单聊一下函数指针的背景&#xff0c;具体使用请参考我的这篇博客 C &#xff1a;函数&#xff1a; 函数指针_hongwen_yul的博客-CSDN博客 假设现在有这样一段代码&#xff1a;C/C中可以使用指针指向一段代码&#xff0c;这个指针就叫函…

【外卖项目实战开发一】

文章目录1、软件开发整体介绍2、外卖项目介绍3、环境搭建数据库环境搭建创建数据库执行SQL脚本数据表maven项目搭建添加依赖:application.yml配置application启动类4、后台登录功能开发需求分析代码开发5、后台退出功能开发1、软件开发整体介绍 软件开发流程 角色分工 软件…

Quasar搭建教程初体验

文章目录一、Quasar框架介绍二、搭建一个简单的Quasar程序1、Quasar CLI安装2、创建Quasar应用程序3、运行Quasar三、使用Quasar开发SSR四、使用Quasar开发桌面应用(Electron)1、添加Quasar Electron模式2、运行开发五、使用Quasar移动应用(Capacitor)1、下载安装AndroidStudio…

Scrapy基本概念——Item Pipeline

一、Item Pipeline介绍 蜘蛛抓取的每一个Item都会被发送到Item Pipeline。根据ITEM_PIPELINES的优先级设置&#xff0c;不同的Item Pipeline依次处理每一个Item&#xff0c;最后可删除该Item不做处理&#xff0c;也可将该Item发送到下一个Item Pipeline。Item Pipeline的主要用…

【Shell 脚本速成】05、Shell 运算详解

目录 一、赋值运算 二、算术运算[四则运算] 2.1 运算符与命令 2.2 整形运算 expr 命令&#xff1a;只能做整数运算&#xff0c;格式比较古板&#xff0c;运算符号两边注意空格 let命令&#xff1a;只能做整数运算&#xff0c;且运算元素必须是变量&#xff0c;无法直接对…

11.14-11.21

1.线性蒙皮 1.1 线性蒙皮定义 线性蒙皮&#xff1a;是由一系列骨骼驱动的。每个顶点会根据顶点权重图和相应的骨骼关联。根据骨骼在当前位置相对于静止位置的变换矩阵以及此顶点相对于该骨骼的权重&#xff0c;我们可以计算出该顶点在该骨骼影响下的位置。 假设Wij是第j个骨…

OpenGL原理与实践——核心模式(五):颜色、基础光照、Phong模型、材质与光

目录 颜色相关理论 什么是颜色 如何计算颜色&#xff1f; 简单实现 Phong光照模型——局部光照模型 环境光 ​编辑 漫反射 镜面反射 材质与光 材质与纹理的关系 材质在shader的体现 材质属性与光属性 光在shader的体现 整体源码实现及渲染结果 关键代码 shade…

【Kubernetes | Pod 系列】Pod的 YAML 清单文件详解

目录3. Pod的 YAML 清单文件3.1 获取资源对象 YAML3.2 解析 YAML 清单文件&#xff08;1&#xff09;apiVersion查看 Kubernetes API 中全部的 API 组&#xff08;2&#xff09;kind查看 Kubernetes 中全部的对象资源类型&#xff08;3&#xff09;metadata&#xff08;4&#…

cron表达式,结构、字段说明、特殊字符说明、常用表达式

1.cron表达式的结构 Cron表达式是一个字符串&#xff0c;结构非常简单。Cron表达式从左到右分为6或7个字段&#xff0c;每个字段代表一个含义&#xff0c;用空格隔开。如下图所示&#xff1a; 2.cron表达式中各个字段的说明和规则 Cron一共有7位&#xff0c;最后一位是年份&…

C语言既然可以自动为变量分配内存,为什么还要用动态分配内存呢?

一、前言 不知道大家在学习C语言动态分配内存的时候有没有过这样的疑问&#xff0c;既然系统可以自动帮我们分配内存&#xff0c;为什么还需要我们程序员自己去分配内存呢&#xff1f; 如果想要弄清楚这些问题&#xff0c;我们首先就要了解静态内存和动态内存有什么区别&…