linux 安装docker 使用docker 安装redis 和redis nexus elasticsearch mysq
时间: 2025-06-20 17:06:03 浏览: 16
<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内存
---
阅读全文
相关推荐














