docker对的tomcat、mysql、redis、nginx的安装
本章篇章主要讲解了docker对常用软件的安装说明
总体步骤:搜索镜像、拉取镜像、查看镜像、启动镜像、停止容器、移除容器
tomcat
docker seacher tomcat//也可以在docker hub上面查找tomcat镜像
docker pull tomcat 从docker hub上拉取tomcat镜像到本地
docker images//查看是否拉取到镜像
**理解用**
docker run -it -p 8080:8080 tomcat//运行tomcat镜像
**注意:**
tomcat10以后的版本要将原本的webapps删除的然后将webapps.dist目录名称换成webapps,
mysql帮助理解篇
docker seacher mysql
docker pull mysql:5.7//以5.7版本为例 不写默认最新版本
docker images mysql:5.7
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:tag //运行mysql,**只为理解用实际工作千万不能用!!!**
-e:环境
-MYSQL_ROOT_PASSWORD:root密码的设置
-d:后台启动
tag:版本号
docker exec -it [mysql的ID] /bin/bash //连接到mysql
mysql -uroot -p //登录mysql
docker 容器下对mysql的坑
1、中文乱码docker默认字符集编码隐患,一般用可视化工具直接建表不会出现这个问题
SHOW VARIABLES LIKE 'character%'
2、关闭容器实例没加数据卷,相当于数据没有从容器备份到宿主机上
mysql实战篇
**实战用**
上种运行mysql的弊端已经在备注下描写过了,实际启动方式一般为下种方式
**1、在安装完成后第一步新建mysql实例,安装方式上面已经描述这里不再重复**
docker run -dp 3306:3306 --privileged=true
-v /zzyyuse/mysq1/1og:/var/1og/mysql
-v /zzyyuse/mysql/data:/var/lib/mysql
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
--name mysql mysql:5.7//实际工作用该方法
--privileged=true//开启特权模式,允许容器拥有与主机相同的权限
-v:挂载宿主机的目录或文件到容器中的参数。通过-v可以在容器中访问宿主机中的文件或目录,实现数据的共享和持久化。
2、解决终端乱码问题
1)新建my.cnf,将2)的配置粘贴到my.cnf文件种
vim my.cnf
2)将下面的配置内容粘贴到my.cnf文件种
[client]
default character set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
3)重启数据库
docker restart mysql
总结
**对于目前大部分企业还是选择不将数据库放到容器里,若选择这种情况务必务必务必!!要将数据卷同步!
因为容器在被删除的时候会将保留的内存一并删除该情况造成的后果相当相当严重!
当然也有解决的问题就是共享卷将Docker容器中的数据共享到宿主机中可以解决该问题
-v /zzyyuse/mysq1/1og:/var/1og/mysql
-v /zzyyuse/mysql/data:/var/lib/mysql
-v /zzyyuse/mysql/conf:/etc/mysql/conf.d
以上是对数据日志以及包的共享,再删除之后从新运行mysql镜像会将原本的数据也成功保留
**
redis
1)docker seacher redis//在docker hub上面查找redis镜像
2)docker pull redis:6.0.8//从docker hub上拉取redis镜像到本地
3)在宿主机下新建目录app/redis
mkdir -p /app/redis//递归在宿主机下创建文件目录
4)将redis.conf模板拷贝到/app/redis目录下
cp /xxx/redis.conf /app/redis
5)在/app/redis目录下修改redis.conf
允许redis外地连接 必须注释掉 # bind 127.0.0.1
将daemonize yes注释或者daemonize 设置为no,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败
开启redis数据持久化 appendonly yes (可选)
6)运行镜像
docker run -d -p 6379:6379 redis:6.0.8//后台运行redis
--privileged=true//开启特权模式,允许容器拥有与主机相同的权限
docker exec -it [ID] /bin/bash
docker run p 6379:6379 --name myr3--privileged=true
-v /app/redis/redis.conf:/etc/redis/redis.conf //从宿主机下的redis.conf 映射到etc下的redis.conf
-v /app/redis/data:/data //宿主机和容器实例的路径映射
-d redis:6.0.8 redis-server /etc/redis/redis.conf
7)测试连接
docker exec -it [容器ID或名称] /bin/bash
redis-cli
docker对的tomcat、mysql、redis、nginx的安装的更多相关文章
- CentOS7 服务器 JDK+TOMCAT+MYSQL+redis 安装日志
防火墙配置(参考 CentOS7安装iptables防火墙) 检查是否安装iptables #先检查是否安装了iptables service iptables status #安装iptables ...
- Linux JDK+TOMCAT+MYSQL+redis 安装日志
检查是否安装iptables #先检查是否安装了iptablesservice iptables status#安装iptablesyum install -y iptables#升级iptables ...
- mq/mysql/redis/nginx常见服务&工具安装
单机版 3.1安装工具 3.1.1 安装Maven工具 3.1.1上传安装包 1)root用户创建安装目录如/usr/local /maven: mkdir -p /usr/local/maven ...
- linux下配置jdk,tomcat,mysql,redis,zookeeper
jdk: 解压: tar zxvf jdk-8u144-linux-x64.tar.gz 执行:vi /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0 ...
- 如何基于 Docker 快速搭建 Springboot + Mysql + Redis 项目
目录 前言 项目目录 搭建项目 1. docker安装启动mysql以及redis 1.1 安装mysql 1.2 安装redis 2. 初始化数据库 3.创建项目 4.初始化代码 4.1 全局配置文 ...
- ContOS 7安装Docker使用及部署MySQL和Nginx
此文章采取狂神说Java https://space.bilibili.com/95256449 Docker学习网址: Docker官网:https://www.docker.com/ Docker ...
- 一键部署十个服务脚本--可拆分---java+mysql+redis+nginx+rocketmq..等等
java + mysql +redis + minio + nginx + rocketmq + rocketmq-console + elasticsearch + kibana + logstas ...
- 105道BAT最新Java面试题(MySQL+Redis+nginx+ookeeper+MongoDB)
MySQL面试题 1. 主键 超键 候选键 外键 2.数据库事务的四个特性及含义 3. 视图的作用,视图可以更改么? 4. drop,delete与truncate的区别 5. 索引的工作原理及其种类 ...
- Linux上安装jdk Tomcat mysql redis等
1.安装JDk 1.1这里使用xshell中xfxp进行文件的上传,将jdk二进制包上传到Linux服务器上 下载地址:https://www.oracle.com/java/technologie ...
- tomcat+java+redis环境linux安装
最近要加一个环境测试,自力更生,丰衣足食,记下来下次安装环境速度快点 java jdk-1.80_131 64位 这个jdk 对于初次下载的人要注意,oracel现在不登录不让下载,而注册用户时页面无 ...
随机推荐
- 【Hibernate】Re04 JPA规范使用
都忘了前面一些小前提,就是数据库需要是存在的,不过写链接参数都会写上的 JPA实现就是和Hibernate类似,也需要对应的配置文件等等... 1.配置文件必须命名[persistence.xml]且 ...
- 全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类
全网最适合入门的面向对象编程教程:30 Python 的内置数据类型-object 根类 摘要: 在 Python 中,所有的类都直接或间接继承自一个根类,这个根类是Object.Object类是 P ...
- Flutter&Dart Callback转同步
前言 怎么将一个Callback回调转化成Future同步方法(Callback to Future),可以配套async / await去使用呢? 个人觉得,这是一个很常见的现象,不知道为啥,很多人 ...
- C# 使用特性的方式封装报文
在编写上位机软件时,需要经常处理命令拼接与其他设备进行通信,通常对不同的命令封装成不同的方法,扩展稍许麻烦. 本次拟以特性方式实现,以兼顾维护性与扩展性. 思想: 一种命令对应一个类,其类中的各个属性 ...
- .NET+WPF 桌面快速启动工具 GeekDesk
前言 大家在平时工作中,是不是经常为了找某个文件或者应用而在电脑桌面上来回翻找?桌面图标乱七八糟,每次找东西都像在大海捞针一样. 今天给大家介绍一个开源项目 GeekDesk,它能够让桌面焕然一新,工 ...
- 源码解析之为何要用ConcurrentHashMap
为什么要用ConcurrentHashMap? ConcurrentHashMap是JUC包下的一个线程安全的HashMap类,我们都知道多线程的场景下要用ConcurrentHashMap来代替Ha ...
- ASP.NET Core 如何紀錄 Entity Framework Core 5.0 自動產生的 SQL 命令
在最近的幾個 Entity Framework Core 版本,對於 Logging (紀錄) 的撰寫方式一直在改變,大致上可區分成 EF Core 2.1 , EF Core 3.0+ 與 EF C ...
- python 读取mysqlDB中指定的表名的DDL语句
注意: 1. 此python文件不要起名为mysql,会跟import的包名重复,python mysql.py运行报错 2.如果需要带端口号,请加database后加上, port="33 ...
- 6.9找回机制接口安全&验证码token接口
响应包response burp截取拦截,改相应包: 思路:此处应该若是修改密码,先抓到修改成功数据包(截取验证关键字),在替换为需要绕过的数据包,截取response数据包,修改验证成功关键字达到绕 ...
- JDBC,SQL注入,事务,C3P0于Druid连接池(最详细解析)
JDBC JDBC(Java DataBase Connectivty,Java数据库连接)API,是一种用于执行Sql语句的Java API,可以为关系型数据库提供统一的访问,其由一组Java编写的 ...