首页 > 数据库 >docker对的tomcat、mysql、redis、nginx的安装

docker对的tomcat、mysql、redis、nginx的安装

时间:2024-08-23 16:37:20浏览次数:10  
标签:容器 tomcat redis nginx conf mysql 镜像 docker

本章篇章主要讲解了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

标签:容器,tomcat,redis,nginx,conf,mysql,镜像,docker
From: https://www.cnblogs.com/Edehuag/p/18373813

相关文章

  • docker mysql导入导出 nginx
    导出MySQL文件mysqldump--no-tablespaces-uroot-pabc>abc.sql导入MySQL文件mysql-uwpp-pvGgM701wWSBNwj8--default-character-set=utf8wpp<D:\wpp\nest\tmp\wpp.sql问题:docker中MySQL无法输入中文解决:dockerexec-itmysqlenvLANG=C.UTF-8/bin/bash将权限json......
  • Docker部署Nginx,无法访问的解决办法
    最近用阿里云的服务器部署了一下Nginx,发现无法通过外网访问,排除掉防火墙和端口映射的问题,最终在阿里云官方发现解决办法,docker0网桥的网段与内网eth0网段冲突,可能导致Nginx无法访问,修改Docker的网段后正常访问.1.运行以下命令,查看docker0和eth0网段是否冲突route如果回显信......
  • K8S之Ingress常用Nginx、Traefik示例
    NginxIngress创建Pod、Service,定义如下nginx-ingress-demo.yamlapiVersion:extensions/v1beta1kind:Deploymentmetadata:name:nginx-deploynamespace:defaultspec:replicas:3selector:matchLabels:app:nginx-demoreplease:canary......
  • Redis为什么会阻塞
    Redis的一些阻塞点BigKey删除,删除数据库,AOF日志同步聚合操作,全量查询操作,从库读取RDB文件。其中删除BigKey,AOF日志,删除数据库可以异步执行。聚合操作,全量查询,从库读取RDB文件如果过大的话都是会造成阻塞的。CPU也会影响RedisCPU分为多个物理核,一个物理核分为两个逻辑核。......
  • Redis实战
    Redis的String类型有什么缺点在花费内存方面,String花费的内存很多。如果存储的是64位有符号整数的话,就是一个8字节Long类型整数。如果是包含字符的话,就会用SDS,也就是简单字符串来存储,SDS中会把存储的数据最后加一个\0,还会存储使用的buf的长度,实际分配的buf的长度。不仅如此,有......
  • 自定义安装Nginx
    nginx下载地址:https://nginx.org/download/1.下载wgethttps://nginx.org/download/nginx-1.18.0.tar.gz2.安装依赖yum-yinstallgccgcc-c++makeautomakeautoconfpcrepcre-develzlibzlib-developensslopenssl-devellibtool3.解压tar-vxfnginx-1.18.0.tar.......
  • 高效缓存策略——.NET Core 中基于 Redis 的分布式缓存实现
    引言在构建高性能的应用程序时,缓存是不可或缺的技术之一。通过缓存,我们能够显著减少数据库的压力、提升应用的响应速度。而在分布式系统中,分布式缓存则成为了处理高并发和大数据量的理想选择。本文将以Redis为例,介绍如何在.NETCore中实现分布式缓存,帮助开发者打造高效......
  • Redis学习(一)
    1.通用命令keys*delk1existsk1expipek1ttlk12.String类型String类型的常见命令setk1v1 添加键值对getk1v1 获得键值对对应的值msetk1v1k2v2 一次性设置多个值mgetk1k2k3 一次性获取多个键值对的值incrk1 让k1自增incrbyk12 按步长2自增......
  • 浅谈Redis(一)
    浅谈Redis(一)文章目录浅谈Redis(一)Redis的特点Redis线程模型Redis单线程为什么快Redis持久化方案Redis缓存淘汰策略Redis缓存穿透、击穿和雪崩区别和解决方案Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。Redis支持多种数据结构,比如str......
  • nginx代理服务
    Nginx****代理服务代理区别区别在于代理的对象不⼀样正向代理代理的对象是客户端反向代理代理的对象是服务端2.Nginx****负载均衡2.2Nginx****负载均衡状态配置backupmax_conns测试backup以及down状态当⼀个后端服务器被标记为backup时,它将仅作为备⽤服务器使......