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现在不登录不让下载,而注册用户时页面无 ...
随机推荐
- 强化学习中经典算法 —— reinforce算法 —— (进一步理解, 理论推导出的计算模型和实际应用中的计算模型的区别)
在奖励折扣率为1的情况下,既没有折扣的情况下,reinforce算法理论上可以写为: 但是在有折扣的情况下,reinforce算法理论上可以写为: 以上均为理论模型. ================ ...
- 如何使用强化学习算法解决15-puzzle问题,即所谓的“十五谜题”推盘游戏
相关: https://medium.com/@amshali/15-puzzle-with-reinforcement-learning-8bcfc1aa54e7 什么是15-puzzle问题? 数 ...
- 【转载】Typora 的 Markdown 语法
原文地址: Typora 的 Markdown 语法 详细见原文: https://support.typoraio.cn/zh/Markdown-Reference/
- 树莓派3b+ 安装windows10 arm版本的方法及使用体验
首先,我再网上找到了一个很详细的为树莓派3b安装windows10 arm的教程,实际操作下来发现并不可行. 最后找到了可行的教程: 第3章 将Windows10镜像写入TF卡:https://zhu ...
- 二分答案&前缀和&差分&离散化(简记)
二分答案 基本code int Find(int l,int r) { int ans,mid; while(l<=r) { int mid=l+r>>1; if(Check(mid ...
- 直接在jsp页面上使用flex标签
1:去ADOBE下载FLEX的TAGLIB for JSP. http://download.macromedia.com/pub/labs/flex2_tag_library_jsp/flex2_t ...
- [天线原理及设计>基本原理] 2. 细线天线上的电流分配
2. 细线天线上的电流分配 为了说明线性偶极子上电流分布的产生及其随后的辐射,让我们首先从无损双线传输线的几何形状开始,如图1.15(a)所示. 电荷的运动沿每条导线产生幅度为I0/2的行波电流.当电 ...
- CF Div3 962 E-F
CF Div3 962 E-F E. Decode 链接: Problem - E - Codeforces 简要题意: 给你一个长度为 \(n\) 的二进制字符串\(s\) .对于每一对整数\((l ...
- Json Number Format 异常 Expected an int but was 2168520652 at line 1 column 325
某变量声明为Integer类型,报json 转换异常 超出了Integer的最大值2147483647, 将类型修改为BigInteger即可,BigInteger:支持任意精度的整数 写Bean时, ...
- JavaScript 中 structuredClone 和 JSON.parse(JSON.stringify()) 克隆对象的区别
JavaScript 中 structuredClone 和 JSON.parse(JSON.stringify()) 克隆对象的异同点 一.什么是 structuredClone? 1. struc ...