(八)Docker上安装常用软件说明(redis)

本文介绍了如何从DockerHub获取Redis镜像,然后在Linux环境中配置Redis以允许外部连接,修改配置文件如daemonize和bind,以及启动Redis容器时挂载配置和数据文件。通过重启容器验证配置文件的修改生效,确保Redis容器读取到了外部的配置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、快速测试验证

二、实际工作中

三、启动容器

四、测试验证读到了外边的配置文件


一、快速测试验证

从docker hub上(阿里云加速器)拉取redis镜像到本地标签为7.0.8

 入门命令:

二、实际工作中

1、从redis官网下载对应的redis压缩包(我的是7.0.8,版本一定要对应,否则可能后期导致redis无法启动),然后解压出来拿到目录下的redis.conf配置文件,备用。

redis官网地址:Download | Redis

我也上传了一份,可直接下载(版本7.0.8) :redis.conf,版本7.0.8-Redis文档类资源-优快云下载

2、在宿主机中新建目录/app/redis,并将准备好的redis.conf拷贝到此目录下

mkdir -p /app/redis
cp /opt/redis-7.0.8/redis.conf /app/redis/

3、修改配置文件,必须修改的包括以下几项:

(1)允许外地连接:注释掉 bind 127.0.0.1 -::1

(2)后台启动:daemonize yes注释起来或者改成daemonize no。因为该配置和docker run中-d参数冲突,会导致容器一直启动失败。

(3)关闭保护模式,保证外地能连接

关于redis.conf的其他参数详解,可以参考以下博文:

(四)Redis配置文件redis.conf详解_mr__bai的博客-优快云博客

三、启动容器

接下来就是要将redis 的配置文件进行挂载,以配置文件方式启动redis 容器。(挂载:即将宿主的文件和容器内部目录相关联,相互绑定,在宿主机内修改文件的话也随之修改容器内部文件)

(1)挂载redis的配置文件

(2)挂载redis 的持久化文件(为了数据的持久化)。

本人的宿主机中配置文件和数据放置位置:

liunx 下redis.conf文件位置: /app/redis/redis.conf

liunx 下redis的data文件位置 : /app/redis/data

位置可以自己随便选择

给容器起了个名字:myredis

docker run  -p 6379:6379 --name myredis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:7.0.8 redis-server /etc/redis/redis.conf

四、测试验证读到了外边的配置文件

1、首先退出redis连接

2、修改宿主机redis.conf

将/app/redis/redis.conf中的database参数 16改为10(默认16个数据库,改为10个)

3、重启redis容器

docker restart myredis

4、连接测试验证,不可以切换15号库,(步骤三中可以切换)

<think>好的,我现在需要帮助用户解决在Linux安装Docker并部署Redis、Nexus、Elasticsearch和MySQL的问题。首先,我得回顾用户提供的引用内容,看看里面有没有相关的步骤或者命令可以参考。 用户给的引用里有几个关于Docker安装和部署不同服务的例子。引用[1]提到在CentOS7上安装Docker的步骤,包括卸载旧版本、安装必要工具和添加仓库,然后安装Docker CE。引用[2]有Ubuntu系统下的安装命令,但用户可能用的是CentOS,所以主要参考引用[1]的内容。安装后的启动命令应该是通用的,比如systemctl start docker。 接下来是部署各个应用的部分。引用[3]和[4]提供了MySQL、Redis、Elasticsearch的Docker命令。比如MySQL的部署,用户需要映射端口、设置密码、挂载数据卷,还有字符集配置。Redis的话,引用里也有类似的docker run命令,可能需要调整端口和持久化设置。Elasticsearch的部署需要注意内存限制,这在引用[4]里提到了环境变量ES_JAVA_OPTS的设置。Nexus没有直接出现在引用里,但根据经验,可以拉取sonatype/nexus3镜像,并映射端口和数据卷。 用户可能还需要docker-compose的配置,引用[4]提到了使用docker-compose.yml来部署多个服务。虽然用户没明确要求,但提供一个docker-compose的例子可能会更全面,方便用户一键部署。 需要确保步骤清晰,先安装Docker,然后分别部署每个服务,每个步骤给出具体的命令和参数解释。同时,要检查命令是否正确,比如MySQL的版本、Elasticsearch的内存设置是否正确。另外,提醒用户注意数据持久化,避免容器删除后数据丢失,这可以通过-v参数挂载卷实现。 还要注意用户是否可能遇到常见问题,比如权限问题,特别是Elasticsearch需要调整系统参数,如vm.max_map_count,这可能需要在宿主机上执行sysctl命令。Nexus的持久化目录可能需要设置正确的权限,否则容器可能无法启动。 最后,生成的相关问题需要围绕安装Docker的注意事项、各应用的配置优化、数据备份以及docker-compose的使用等,这些都是用户可能进一步想了解的内容。</think>### 分步指南:Linux安装Docker及部署常用服务 --- #### **一、Linux系统安装Docker** 1. **卸载旧版本(若存在)** ```bash sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine ``` 2. **安装依赖工具** ```bash sudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 3. **添加Docker仓库** ```bash sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ``` 4. **安装Docker CE(社区版)** ```bash sudo yum install docker-ce docker-ce-cli containerd.io ``` 5. **启动Docker并设置开机自启** ```bash sudo systemctl start docker sudo systemctl enable docker ``` 6. **验证安装** ```bash docker --version # 输出类似 Docker version 24.0.7, build xxxxxxx ``` --- #### **二、使用Docker部署常用服务** ##### **1. 部署Redis** ```bash docker run -d \ --name redis \ -p 6379:6379 \ -v /data/redis:/data \ --restart=always \ redis:alpine \ redis-server --appendonly yes ``` - **参数说明** - `-v /data/redis:/data`:持久化数据到宿主机目录 - `--appendonly yes`:启用AOF持久化[^3] ##### **2. 部署Nexus(私有仓库)** ```bash docker run -d \ --name nexus \ -p 8081:8081 \ -v /data/nexus:/nexus-data \ --restart=always \ sonatype/nexus3 ``` - **访问管理界面** 浏览器打开 `http://服务器IP:8081`,默认账号 `admin`,密码在 `/data/nexus/admin.password` 中[^4] ##### **3. 部署Elasticsearch** ```bash docker run -d \ --name elasticsearch \ -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ -v /data/elasticsearch:/usr/share/elasticsearch/data \ --restart=always \ elasticsearch:7.17.0 ``` - **注意** 需调整系统参数:`sudo sysctl -w vm.max_map_count=262144`[^4] ##### **4. 部署MySQL** ```bash docker run -d \ --name mysql \ -p 3306:3306 \ -v /data/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=your_password \ --restart=always \ mysql:8.0 \ --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ``` - **验证连接** ```bash docker exec -it mysql mysql -uroot -p ``` --- #### **三、使用Docker Compose批量部署(可选)** 创建 `docker-compose.yml` 文件: ```yaml version: '3' services: mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: "your_password" volumes: - /data/mysql:/var/lib/mysql ports: - "3306:3306" restart: always redis: image: redis:alpine ports: - "6379:6379" volumes: - /data/redis:/data command: redis-server --appendonly yes restart: always elasticsearch: image: elasticsearch:7.17.0 environment: - discovery.type=single-node - ES_JAVA_OPTS=-Xms512m -Xmx512m volumes: - /data/elasticsearch:/usr/share/elasticsearch/data ports: - "9200:9200" - "9300:9300" restart: always nexus: image: sonatype/nexus3 ports: - "8081:8081" volumes: - /data/nexus:/nexus-data restart: always ``` **启动命令** ```bash docker-compose up -d ``` --- #### **四、关键注意事项** 1. 数据持久化需通过 `-v` 参数挂载宿主机目录 2. `--restart=always` 保证服务意外退出后自动重启 3. 生产环境建议为Elasticsearch分配至少2GB内存 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mr__bai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值