(六)Docker常用软件运行

从Pikachu靶场实战解析越权漏洞:原理、攻击与防御 本文通过Pikachu靶场实战详细解析越权漏洞的原理、攻击方式与防御策略。文章深入探讨水平越权和垂直越权的危害,结合代码示例展示漏洞利用过程,并提供代码层和架构层的立体化防御方案,帮助开发者有效防范这一Web安全隐形杀手。 阅读详情

一、运行redis

1、下载redis镜像

Redis官方镜像说明.
在这里插入图片描述

2、下载配置redis.conf(从官网下载的配置文件)

2.1 、在宿主机创建如下所示目录结构

|-- /
    |-- tmp
    |   |-- docker-volume
	|	|   |-- redis
	|	|   |   |-- conf
	|	|	|   |   |-- redis.conf
	|	|   |   |-- data

在这里插入图片描述

2.2、修改redis.conf配置

需要将redis.conf文件放到路径下:/tmp/docker-volume/redis/conf/redis.conf
启动的时候会将/usr/local/etc/redis/conf/redis.conf与宿主机中的redis.conf做挂载,同步到容器中,从而在启动的时候通过宿主机上面的配置文件启动。

修改redis.conf配置:

  • 开启保存RDB(默认开启):save *
  • 开启AOF立即记录保存:appendonly yes
  • 设置RDB文件名称:dbfilename dump.rdb
  • 设置RDB和AOF文件的保存目录:dir /usr/local/etc/redis/data
  • 设置连接密码:requirepass 123456
  • 关闭主机绑定(不关闭,其他主机无法访问):# bind 127.0.0.1 -::1

2.3、启动redis

  1. 第一次启动

    命令:docker run -d -p 6379:6379 -v /tmp/docker-volume/redis/data:/data/ -v /tmp/docker-volume/redis/conf/redis.conf:/usr/local/etc/redis/conf/redis.conf redis:6.2 redis-server /usr/local/etc/redis/conf/redis.conf

    会发现无法启动容器,报没找不到我们想要挂载的目录/usr/local/etc/redis/data。

[root@localhost /]# docker run -d -p 6379:6379 -v /tmp/docker-volume/redis/data:/data/ -v /tmp/docker-volume/redis/conf/redis.conf:/usr/local/etc/redis/conf/redis.conf redis:6.2 redis-server /usr/local/etc/redis/conf/redis.conf
4da41054a01737030a84bc1374f0819854dafae5db62df90b413cd6da0bdb781
[root@localhost /]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS                      PORTS     NAMES
4da41054a017   redis:6.2   "docker-entrypoint.s…"   28 seconds ago   Exited (1) 26 seconds ago             intelligent_wright
[root@localhost /]# docker logs 4da41054a017
1:C 13 Dec 2021 12:08:30.940 # Can't chdir to '/usr/local/etc/redis/data': No such file or directory
  1. 第二次启动
    我们将命令换成:docker run -d -p 6379:6379 -v /tmp/docker-volume/redis/data:/usr/local/etc/redis/data -v /tmp/docker-volume/redis/conf/redis.conf:/usr/local/etc/redis/conf/redis.conf redis:6.2 sh -c 'mkdir -p /usr/local/etc/redis/data && redis-server /usr/local/etc/redis/conf/redis.conf'

命令解析:

  • 后台运行:-d
  • 端口映射:-p 6379:6379
  • 同步持久化数据:-v /tmp/docker-volume/redis/data:/usr/local/etc/redis/data
  • 使用宿主机的conf文件配置启动(redis镜像中是没有conf文件的,其redis-server在,,,,,目录):-v /tmp/docker-volume/redis/conf/redis.conf:/usr/local/etc/redis/conf/redis.conf
  • 使用同步的conf文件,启动redis:redis-server /usr/local/etc/redis/conf/redis.conf

发现可以成功启动:

[root@localhost docker-volume]# docker run -d -p 6379:6379 -v /tmp/docker-volume/redis/data:/usr/local/etc/redis/data -v /tmp/docker-volume/redis/conf/redis.conf:/usr/local/etc/redis/conf/redis.conf redis:6.2 sh -c 'mkdir -p /usr/local/etc/redis/data && redis-server /usr/local/etc/redis/conf/redis.conf'
13d7382f6826c24d6a13f851fc1c83d0354bca7254f25720dc00e78cfa997c26
[root@localhost docker-volume]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                       NAMES
13d7382f6826   redis:6.2   "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   elegant_lederberg

但是问题是否是真的因为挂载的目录在容器内不存在呢?
于是尝试将目录挂载到centos容器内:

[root@localhost docker-volume]# docker run -it -v /tmp/docker-volume/redis/data:/usr/local/etc/redis/data -v /tmp/docker-volume/redis/conf/redis.conf:/usr/local/etc/redis/conf/redis.conf centos:7 /bin/bash
[root@de28e378c91c /]# cd /usr/local/  
[root@de28e378c91c local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src   
[root@de28e378c91c /]# cd /usr/local/etc/redis/
[root@de28e378c91c redis]# ls
conf  data
[root@de28e378c91c redis]# 

因此,我将可以正常启动redis容器的命令中创建目录的命令换成任意一个,都可以正常的启动容器。
docker run -d -p 6379:6379 -v /tmp/docker-volume/redis/data:/usr/local/etc/redis/data -v /tmp/docker-volume/redis/conf/redis.conf:/usr/local/etc/redis/conf/redis.conf redis:6.2 sh -c 'echo 'start' && redis-server /usr/local/etc/redis/conf/redis.conf'
该问题一直也没找到答案,还望有大佬能解释一下


二、运行MySQL

1、下载MySQL镜像

MySQL官方镜像说明.
在这里插入图片描述

2、运行容器

创建如下目录结构:

|-- /
    |-- tmp
    |   |-- docker-volume
	|	|   |-- MySQL
	|	|   |   |-- conf
	|	|	|   |-- logs
	|	|   |   |-- data

命令:docker run -d -p 3306:3306 --name="MySQL-5.7" -v /tmp/docker-volume/MySQL/conf:/etc/mysql/conf.d -v /tmp/docker-volume/MySQL/logs:/logs -v /tmp/docker-volume/MySQL/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

命令说明:
-d 后台运行
-p 3306:3306:将主机的3306端口映射到docker容器的3306端口。
--name="MySQL-5.7":容器名字
-v /tmp/docker-volume/MySQL/conf:/etc/mysql/conf.d:将主机/tmp/docker-volume/MySQL/conf录下的my.cnf 挂载到容器的 /etc/mysql/conf.d
之所以是这个目录:在这里插入图片描述-v /tmp/docker-volume/MySQL/logs:/logs:将主机/tmp/docker-volume/MySQL/logs目录下的 logs 目录挂载到容器的 /logs。
-v /zzyyuse/mysql/data:/var/lib/mysql:将主机/zzyyuse/mysql/data目录挂载到容器的 /var/lib/mysql 在这里插入图片描述

-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
mysql:5.7: 镜像和版本号
--character-set-server=utf8mb4、--collation-server=utf8mb4_unicode_ci:不使用cnf配置文件,则可以通过该方式传递配置
在这里插入图片描述

3、验证

连接容器中的MySQL,随便创建一个数据库和表,插入3条数据。
在这里插入图片描述
进入宿主机的/tmp/docker-volume/MySQL/data/目录就会发现,多了很多文件和文件夹。并且有一个和我们新建的数据库同名的文件夹。
在这里插入图片描述
测试删除容器,并重新生成新的容器,但是绑定路径和之前不变,经验证之前的表和数据都存在
在这里插入图片描述

三、部署一个项目到运行Tomcat

1、下载tomcat镜像

Tomcat官方镜像说明
在这里插入图片描述

2、建一个spring boot项目(使用外部Tomcat运行)。将项目打包成spring-boot-redis.war

我再该项目中创建了两个接口:
根据key查询redis:http://192.168.0.103:8888/spring-boot-redis/redisController/getRedisStringValueByKey?redisKey=name
往redis中设置值:http://192.168.0.103:8888/spring-boot-redis/redisController/setRedisStringValueByKey?redisKey=name&value=docker


3、运行一个redis容器实例

参考上面的【运行redis】。如果你的项目用不到redis,可以忽略。


4、下载一个tomcat,获取tomcat配置文件

tomcat下载地址

ps:你也可以通过下载的tomcat镜像运行一个容器实例,从容器中/usr/local/tomcat/路径下复制到宿主机。

在宿主机创建一个如下目录结构:
在这里插入图片描述

将下载的tomcat解压,需要获取到整个解压后的conf目录,放在宿主机的/tmp/docker-volume/tomcat-run-project/conf目录下,用于后面覆盖容器内的配置。

将spring-boot-redis.war包放在/tmp/docker-volume/tomcat-run-project/webapps下,tomcat启动后会自动将war包解压:在这里插入图片描述


5、运行容器

命令:docker run -d -p 8888:8080 --name="tomcat" -v /tmp/docker-volume/tomcat-run-project/conf:/usr/local/tomcat/conf -v /tmp/docker-volume/tomcat-run-project/logs:/usr/local/tomcat/logs -v /tmp/docker-volume/tomcat-run-project/webapps:/usr/local/tomcat/webapps tomcat:8.5.32

命令说明:
-d 后台运行
-p 8888:8080:将主机的8888端口映射到docker容器的8080 端口。
--name="tomcat":容器名字
-v /tmp/docker-volume/tomcat-run-project/conf:/usr/local/tomcat/conf、-v /tmp/docker-volume/tomcat-run-project/logs:/usr/local/tomcat/logs、-v /tmp/docker-volume/tomcat-run-project/webapps:/usr/local/tomcat/webapps:目录挂载


6、访问测试

注意:访问需要使用war包的名称
在这里插入图片描述

7、其他方式

运行一个Tomcat的容器后,使用docker cp命令将war包复制到容器的/usr/local/tomcat/webapps路径下,然后docker restart重启容器。

windows exe爬虫:exe抓包 在不知情所拦截应用使用的流量时,所以建议用Wireshark。本文利用python代码,实现自动拦截,写入pcap包,并用代码分析流量的协议。这样会在本地目录下生成capture_inbound.pcap,可以用wireshark分析,也可以利用python代码进行分析,如果使用python代码进行分析,需要借助pyshark或者scapy。使用的python WinDivert的包,当然前提也是需要安装Wireshark软件,设置环境变量,并安装pydirvert包。 阅读详情

相关推荐

Android Settings 设置Preference置灰显示

使Preference置灰显示,不能点击。先调用Preference的setEnabled(false),再调用setShouldDisableView(true); 如果使置灰项恢复正常可点击,可调用setEnabled(true)。

随风而动 1049

小白入门:如何在docker中运行python程序

本文仅涉及docker的基础使用。主要介绍如何在docker容器内运行python程序,以及一些相关问题及解决方法,例如:如何让容器启动后自动运行程序?如何二次修改镜像,如何进行文件挂载?如何将镜像上传至dockerhub?......

A24kk42__的博客 2万+

logisim实验——通过2个半加器实现1-bit全加器,通过4个一位全加器构成4-bit加法器(详解)

一、由异或门和与门所构成的半加器: 二、由两个半加器构成的1-bit全加器: ..

zep 1万+

Docker 安装软件、并运行(jdk、mysql、redis)

本文将介绍如何在服务器使用Docker快速安装Java常用工具。

qq_61984546的博客 2717

(一)利用Python实现数据集读取,Python基本文件操作介绍

机器学习是计算机对大量数据的分析过程,在机器学习的实际项目中,通常都需要准备数据集,数据集通常包含的数据数量是庞大的。例如,在处理计算机视觉领域的项目时,每一张图片都是一个单独的文件,为了提高模型训练的效果,图片数量通常会比较多,因此需要合理且高效的操作将所有的图片数据读取。本篇旨在介绍如何用Python对海量文件进行遍历,也是机器学习实践的第一步。.........

ZZR2631574030的博客 6357

基于stm32开发的红外循迹小车

2.L298N电机驱动模块:分别是5V,12V,GND,可以通过外加电源给驱动模块供电,IN1,IN2,IN3,IN4,EN1,EN2,通过给IN口不同的电平,可以达到控制电机正反转,EN口为使能口,可以通过给EN口不同的PWM波,来达到控制小车速度,1.红外循迹模块:检测黑线的原理是向外发射红外线,当没有遇到黑线的时候,返回回来,之后返回高电平,当遇到黑线的时候,红外被吸收,返回高电平,读取相应IO口的电平就可以知道小车此时的大致位置;模块有四个输入接口,分别连接四个TT马达,驱动小车运动;

2301_81374681的博客 1万+

docker笔记(应用程序跨平台间无缝接轨运行)

Docker入门

qq_43813373的博客 1838

ANSYS Fluent中的声学模型:实用指南

文章摘要 本文介绍了ANSYS Fluent中三种气动声学模拟方法:Ffowcs-Williams & Hawkings(FWH)模型、宽带噪声源模型和波动方程模型。FWH模型适用于外部气动声学问题,需要瞬态流场数据来预测远场噪声;宽带模型基于稳态RANS模拟,可快速识别噪声源位置,适合早期设计阶段;波动方程模型直接求解声波方程,提供全域声压分布,但仅适用于低马赫数流动。文章详细说明了各模型的使用场景、设置步骤和关键参数配置,为工程应用提供了实用指南。

weixin_45793544的博客 1324

Docker容器使用

docker初学知识

长方体混泥土空间位移工程师 1545

告别sgmediation!Stata中介效应分析新选择:mediation包完整操作指南

本文介绍了Stata中介效应分析从传统sgmediation命令向mediation包的范式升级。重点阐述了如何使用medeff和medsens命令进行更严谨的因果推断,并执行关键的敏感性分析,以评估结果对未观测混杂的稳健性,为学术研究提供发表级的分析工具。

redis7keeper的博客 1160

NVIDIA AI 学习与认证指南:从入门到精通

NVIDIA的AI学习与认证体系,凭借其先进的技术背景、丰富的课程资源以及强大的行业认可度,已成为AI学习者和从业者的宝贵资源。通过深入学习NVIDIA的课程和获得认证,学习者可以快速掌握最前沿的AI技术,提升自己的职业竞争力。从基础课程到专业认证,NVIDIA为不同层次的学习者提供了量身定制的学习资源,帮助他们掌握AI的核心技能,提升职业竞争力。是其中的一个亮点,它结合了信息检索与生成式AI的能力,使AI可以从外部知识库中实时提取信息,生成更具深度和准确性的内容。,帮助学习者快速掌握该领域的核心技术。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1881

超详细Docker的配置以及Docker部署C++

超详细Docker的安装以及Docker部署C++

m0_65635427的博客 7805

NX二次开发新建组件

NXOpen新建组件

qq_39541524的博客 329

Docker运行常用软件,亲测

使用Docker可以快速搭建你的开发环境,以下是我经常用到的几个常用软件。文章的最后会总结下使用docker run的套路。 默认的,Docker会从官方的 Docker Hub 拉取镜像,国内用户想要提升访问 Docker Hub 拉取镜像的速度及稳定性,需要配置镜像站,这里使用的是DaoCloud的镜像站 以Linux系统为例: $ curl -sSL https://...

读钓的博客 1850

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Docker 常用软件安装

Docker 可以说对于软件开发非常方便了,可以运行不同中间件服务软件,对外暴露使用,而且容器与容器之间互不干扰。 下面分别讲述一些常用软件在 Docker 上的安装(后续会继续补充): 1.MySQL 安装并运行指令(自动拉取镜像): docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf

淦淦淦! 3203

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Centos9安装docker及常用软件的docker部署

通俗理解,Docker在启动时会创建一个类似路由器的东西,名为docker0,地址:172.17.0.1,每开一个容器,Docker会给容器分配一个ip地址,例如:172.17.0.2、172.17.0.3,可以通过。:第一步拷贝出来的是一个名为nginx的目录,里面是配置文件,可以到/root/nginx/conf/nginx中查看一下。方便管理和识别,即使容器删除,也可通过名称访问、管理数据卷。tar包解压后的名字是什么需要自己解压看一下,RUN中的命令执行不了改名会报错。是 MySQL 数据库容器,

YUELEI118的博客 1329

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Docker入门到实践 (七) docker常用软件的安装

文章目录一、前言二、docker常用软件的部署1、docker安装Tomcat2、docker安装Mysql3、docker安装Redis4、docker安装RabbitMQ5、docker安装Nginx 一、前言   在上一篇文章中已经介绍了docker数据的备份、恢复与迁移, 下面正式进入到docker部署常用软件的讲解。 二、docker常用软件的部署 1、docker安装Tomcat...

浅末年华的博客 1331

四、docker系列之docker安装常用软件

一、docker简介 二、docker安装 三、docker常用命令 四、docker安装常用软件 五、dockerfile的使用及讲解 六、docker部署springboot项目 七、docker私有仓库搭建 八、docker compose介绍

龙ygl龙的博客 1106

第三章 Docker中常用软件安装部署练习

如下图所示,以Nginx为例,进入网站后在搜索栏里可以找自己想要的应用程序的镜像版本:我们也可以按照上一章讲到的,通过命令docker search nginx来搜索版本信息下载。上图中小红框圈的都是tag# 搜索ngnix的镜像版本# 根据指定的tag即版本号下载ngnix。

Calvin的博客 1428

docker安装常用软件,没有比我这里更全了!

       Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。下面就介绍一些常用软件的安装,后期在补充更多!    &nbsp...

wang2834557的博客 2288

Docker安装常用软件

一、基本要用到的几个命令 其实记住下面这两个就行了 docker --help:列出所有命令及其说明 docker COMMAND --help:单个命令的用法 其中安装软件需要用到的 search:查找Docker Hub上的镜像,如docker search mysql pull:拉取指定镜像,如docker pull mysql:5.6 run:运行容器,如docker r...

周先生丶的博客 1106

如何在Docker容器中运行Docker [3种方法]

在本博客中,我将向您介绍在docker中运行docker所需的三种不同方法。Docker In Docker的用处 dockerIndocker的一个潜在用处是CI管道,在代码成功构建后...

DevOps持续集成的博客 1万+

在Docker中安装和运行CentOS容器

摘要: 本文详细介绍了在Docker中安装和运行CentOS容器的完整流程。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1万+

Docker运行

v D:\WWW\CRMEB_PRO\crmeb_pro:/var/www 把本地D:\WWW\CRMEB_PRO\crmeb_pro下的文件映射到容器中的/var/www目录中这样就改了本地的文件容器内的就自动变。-v D:\docker-image\mysql\my.cnf:/etc/mysql/mysql.conf.d/my.cnf 映射宿主机的mysql配置到容器中。本教程中没有拉取Nginx的镜像,可以用来调试或者使用宿主机上的nginx进行反向代理映射出来的端口。创建一个叫:pro的镜像。

crmebyyy的博客 2120

linux docker运行exe,在Windows上的Bash上运行Docker容器

在Windows上从Bash运行DockerDocker需要访问相当多的系统调用,这些调用不一定都是在Windows上实现的,因此在WSL下Docker可能并不那么容易,相反,我可以在Windows上运行Docker Engine,并从Bash连接到Docker 。1.在Windows上安装Docker要在Windows上安装Docker引擎,只需访问docker.com并下载相应的发行版(win...

weixin_31241561的博客 1398

Docker安装以及部署常用软件

Docker的安装以及开发中软件安装

程序员进阶之路 635
上一篇: 官网redis.conf文件
下一篇: java使用Graphics2D进行图片文字合成示例
村口老师傅
博客等级 码龄9年 67粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值