Linux Docker 安装与常用环境部署完整指南

Linux Docker 安装与常用环境部署完整指南

本文详细介绍了在 Ubuntu / CentOS 系统中安装 Docker、部署常用中间件镜像,以及独立安装 JDK、Python、Nginx 等环境的完整步骤。包含每个软件的安装验证、启动/退出命令、密码设置、访问验证和常用命令参数详解。

适用系统 :Ubuntu 20.04/22.04/24.04、CentOS 7/8

涵盖内容 :Docker、JDK 8/17、Python、MySQL、Redis、Elasticsearch、MongoDB、MinIO、Nacos、RabbitMQ、RocketMQ、Nginx

更新日期:2026-07-02


目录


一、安装 Docker

1.1 Ubuntu 下安装 Docker

**提示:**Ubuntu 使用 apt 包管理器,不使用 yum。以下步骤适用于 Ubuntu 20.04 / 22.04 / 24.04。

步骤 1:卸载旧版本
复制代码
# 卸载可能存在的旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
步骤 2:更新软件包索引并安装依赖
复制代码
sudo apt-get update

sudo apt-get install -y ca-certificates curl gnupg lsb-release
步骤 3:添加 Docker 官方 GPG 密钥
复制代码
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
步骤 4:添加 Docker 仓库
复制代码
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
步骤 5:安装 Docker Engine
复制代码
# 安装最新版 Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 或者安装指定版本(查看可用版本: apt-cache madison docker-ce)
# sudo apt-get install -y docker-ce=5:27.x.x~ubuntu-$(. /etc/os-release && echo "$VERSION_CODENAME") docker-ce-cli=5:27.x.x~ubuntu-$(. /etc/os-release && echo "$VERSION_CODENAME") containerd.io
步骤 6:验证安装
复制代码
sudo docker run hello-world
步骤 7:免 sudo 使用 Docker(可选)
复制代码
sudo usermod -aG docker $USER
# 重新登录或执行以下命令使生效
newgrp docker

1.2 CentOS 下安装 Docker

**提示:**CentOS 7 使用 yum,CentOS 8+ 使用 dnf(兼容 yum 命令)。

步骤 1:卸载旧版本
复制代码
sudo yum remove docker docker-client docker-client-latest \
    docker-common docker-latest docker-latest-logrotate \
    docker-logrotate docker-engine
步骤 2:安装依赖
复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
步骤 3:添加 Docker 仓库
复制代码
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

**国内加速:**如果官方仓库访问慢,可使用阿里云镜像: sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

步骤 4:安装 Docker
复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
步骤 5:启动并设置开机自启
复制代码
sudo systemctl start docker
sudo systemctl enable docker
步骤 6:验证安装
复制代码
sudo docker run hello-world

1.3 安装 Docker Compose

Docker 最新版本已内置 docker compose 插件(注意是 docker compose 而非 docker-compose),如需独立安装旧版:

复制代码
# 下载 Docker Compose 二进制文件(独立版)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 验证
docker-compose --version

1.4 配置 Docker 镜像加速

**注意:**国内拉取 Docker Hub 镜像较慢,建议配置镜像加速器。

复制代码
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

1.5 Docker 常用命令速查

命令 说明 常用参数详解
docker --version 查看 Docker 版本 ---
docker info 查看 Docker 系统信息 ---
docker ps 查看运行中的容器 -a 显示所有(含已停止),-q 只显示 ID,-f 过滤
docker images 查看所有镜像 -q 只显示 ID,-f dangling=true 显示悬空镜像
docker pull 镜像名:标签 拉取镜像 :标签 指定版本,默认为 latest
docker push 镜像名:标签 推送镜像到仓库 需先 docker login 登录镜像仓库
docker rmi 镜像ID 删除镜像 -f 强制删除(有容器使用时)
docker build -t 镜像名 . 构建镜像 -t 打标签,. 指定 Dockerfile 所在目录,--no-cache 不用缓存
docker run 镜像名 运行容器 -d 后台运行,--name 命名,-p 宿主机:容器 端口映射,-v 宿主机:容器 挂载,-e KEY=VAL 环境变量,--rm 自动删除,--restart unless-stopped 自动重启
docker run -it --rm 镜像名 bash 交互运行,退出后自动删除 -i 交互模式,-t 分配伪终端,--rm 退出删除
docker start 容器名 启动已停止的容器 -a 附加到容器输出,-i 交互模式
docker stop 容器名 停止容器 发送 SIGTERM 信号,等待 10 秒后强制停止
docker restart 容器名 重启容器 先 stop 再 start
docker rm 容器名 删除容器 -f 强制删除运行中的容器,-v 同时删除挂载的数据卷
docker logs 容器名 查看容器日志 -f 实时跟踪,--tail 100 显示最后 100 行,-t 显示时间戳
docker exec 容器名 命令 在运行中的容器执行命令 -it 交互终端,-u root 以 root 执行
docker inspect 容器名 查看容器详细信息 返回 JSON 格式,含 IP、挂载、环境变量等
docker top 容器名 查看容器内进程 类似宿主机 ps 命令
docker stats 实时查看容器资源占用 显示 CPU、内存、网络、IO 等实时数据
docker cp 源 目标 宿主机与容器间复制文件 方向:宿主机:容器容器:宿主机
docker volume 子命令 管理数据卷 ls 列表,rm 删除,create 创建,inspect 查看详情
docker network 子命令 管理网络 ls 列表,rm 删除,create 创建自定义网络
docker system df 查看磁盘占用 显示镜像、容器、卷的磁盘使用情况
docker system prune 清理未使用资源 -a 清理所有未使用(含镜像),-f 不确认直接执行
docker compose up -d 后台启动 Compose 服务 -d 后台,--build 强制重新构建,-f 指定 compose 文件
docker compose down 停止并删除 Compose 服务 -v 同时删除数据卷,--rmi all 删除镜像
docker compose ps 查看 Compose 服务状态 显示各服务运行状态和端口映射
docker compose logs 查看 Compose 服务日志 -f 实时跟踪,服务名 只看指定服务

二、Docker 安装常用镜像

2.1 OpenJDK 8 & JDK 17

OpenJDK 8
复制代码
# 拉取镜像
docker pull openjdk:8-jdk

# 运行容器(测试)
docker run --rm openjdk:8-jdk java -version
OpenJDK 17
复制代码
# 拉取镜像
docker pull openjdk:17-jdk

# 运行容器(测试)
docker run --rm openjdk:17-jdk java -version
推荐:使用 Eclipse Temurin(更稳定的企业版 JDK)
复制代码
# JDK 8
docker pull eclipse-temurin:8-jdk

# JDK 17
docker pull eclipse-temurin:17-jdk

# 测试
docker run --rm eclipse-temurin:17-jdk java -version

**说明:**如果你需要在容器中编译运行 Spring Boot 项目,建议使用 eclipse-temurin:17-jdk 镜像作为基础镜像。

密码/访问说明

**说明:**OpenJDK 镜像本身无密码认证机制。容器内仅提供 Java 运行环境,不涉及用户密码。如需安全隔离,可通过 Docker 容器自身的资源限制和网络策略控制访问。

验证与停止
操作 命令
启动验证 docker run --rm eclipse-temurin:17-jdk java -version
停止容器 docker stop openjdk8 / docker stop openjdk17
删除容器 docker rm openjdk8 / docker rm openjdk17
查看日志 docker logs openjdk17
进入容器 docker exec -it openjdk17 bash
使用指南

**编译运行 Java 程序:**将本地代码挂载到容器中编译运行,或基于 JDK 镜像构建自定义应用镜像。

复制代码
# 编译并运行单文件 Java 程序
docker run --rm -v $(pwd):/app -w /app eclipse-temurin:17-jdk \
  bash -c "javac Hello.java && java Hello"

# 参数说明:
# -v $(pwd):/app  挂载当前目录
# -w /app         工作目录
# bash -c "..."   执行多行命令

# 查看已安装的 JDK 版本和路径
docker run --rm eclipse-temurin:17-jdk which java
docker run --rm eclipse-temurin:17-jdk echo $JAVA_HOME
常用命令及参数详解
命令 参数说明
javac Hello.java 编译 Java 源文件为 .class 字节码
java Hello 运行编译后的 Java 程序(无 .class 后缀)
java -jar app.jar 运行可执行的 JAR 包
java -Xms512m -Xmx1024m -Xms 初始堆内存,-Xmx 最大堆内存
javac -d . Hello.java -d 指定编译输出目录

2.2 Python

复制代码
# 拉取镜像(推荐 3.12)
docker pull python:3.12

# 运行容器(测试)
docker run --rm python:3.12 python --version

# 进入容器交互
docker run -it --rm python:3.12 bash
镜像标签 说明
python:3.12 最新稳定版(推荐)
python:3.11 上一个稳定版
python:3.12-slim 精简版,镜像体积更小
python:3.12-alpine 基于 Alpine Linux,最小体积
密码/访问说明

**说明:**Python 镜像本身无密码认证。容器内仅提供 Python 解释器环境。如需运行 Web 应用(如 Flask/Django),密码认证由应用层自行实现。

验证与停止
操作 命令
启动验证 docker run --rm python:3.12 python --version
停止容器 docker stop python
删除容器 docker rm python
查看日志 docker logs python
进入容器 docker exec -it python bash
使用指南

**运行 Python 脚本:**将本地脚本挂载到容器中执行,或构建自定义镜像。

复制代码
# 运行本地 Python 脚本
docker run --rm -v $(pwd):/app -w /app python:3.12 python script.py

# 参数说明:
# -v $(pwd):/app  将当前目录挂载到容器 /app
# -w /app         设置容器内工作目录为 /app
# --rm            运行结束后自动删除容器

# 交互式运行并安装依赖
docker run -it --rm -v $(pwd):/app -w /app python:3.12 bash
pip install requests flask
python script.py
常用命令及参数详解
命令 参数说明
docker run -v 宿主机:容器 挂载宿主机目录到容器内
docker run -w 目录 设置容器内工作目录
docker run --rm 容器退出后自动删除
pip install -r requirements.txt 按 requirements.txt 安装依赖
python -m venv myenv 创建 Python 虚拟环境
source myenv/bin/activate 激活虚拟环境(Linux/macOS)

2.3 MySQL

复制代码
# 拉取镜像(8.0)
docker pull mysql:8.0

# 运行容器
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=your_password \
  -e MYSQL_DATABASE=mydb \
  -e MYSQL_CHARACTER_SET_SERVER=utf8mb4 \
  -e MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci \
  -v mysql_data:/var/lib/mysql \
  --restart unless-stopped \
  mysql:8.0

# 进入容器
docker exec -it mysql mysql -uroot -p
参数 说明
-p 3306:3306 端口映射(宿主机:容器)
-v mysql_data:/var/lib/mysql 数据持久化到 Docker Volume
--restart unless-stopped 自动重启策略
MYSQL_ROOT_PASSWORD root 密码
密码设置

**初始化密码:**启动时通过环境变量 MYSQL_ROOT_PASSWORD 设置 root 初始密码。

复制代码
# 启动时设置 root 密码
docker run -d --name mysql \
  -e MYSQL_ROOT_PASSWORD=your_password \
  ...

# 进入 MySQL 后修改 root 密码
docker exec -it mysql mysql -uroot -p
# 输入原密码后执行:
ALTER USER 'root'@'%' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

# 创建新用户并授权
CREATE USER 'appuser'@'%' IDENTIFIED BY 'app_pass';
GRANT ALL PRIVILEGES ON mydb.* TO 'appuser'@'%';
FLUSH PRIVILEGES;
验证与停止
操作 命令
启动验证 docker exec -it mysql mysql -uroot -p -e "SELECT 1;"
停止容器 docker stop mysql
删除容器 docker rm mysql(加 -v 同时删除数据卷)
查看日志 docker logs mysql
进入容器 docker exec -it mysql bash
备份数据 docker exec mysql mysqldump -uroot -p mydb > backup.sql
常用命令及参数详解
命令 参数说明
docker exec -it mysql mysql -uroot -p -u 指定用户名,-p 提示输入密码,进入 MySQL 交互 Shell
docker exec mysql mysqldump -uroot -p mydb > backup.sql mysqldump 备份工具,mydb 为数据库名,输出到 backup.sql
docker exec -i mysql mysql -uroot -p mydb < backup.sql -i 保持标准输入,用于恢复备份到 mydb
docker exec mysql mysql -uroot -p -e "SHOW DATABASES;" -e 执行 SQL 语句后直接退出

2.4 Redis

复制代码
# 拉取镜像
docker pull redis:7

# 运行容器
docker run -d \
  --name redis \
  -p 6379:6379 \
  -v redis_data:/data \
  --restart unless-stopped \
  redis:7 redis-server --appendonly yes

# 连接测试
docker exec -it redis redis-cli ping
密码设置

**初始化密码:**启动时通过 --requirepass 参数设置密码。

复制代码
# 启动时设置密码
docker run -d --name redis \
  redis:7 redis-server --appendonly yes --requirepass redis123

# 进入 Redis 后修改密码
docker exec -it redis redis-cli
AUTH redis123
CONFIG SET requirepass newpassword
# 或者修改配置文件后重启(持久化修改)
# 编辑 redis.conf 中的 requirepass 行
验证与停止
操作 命令
启动验证 docker exec -it redis redis-cli ping(返回 PONG)
停止容器 docker stop redis
删除容器 docker rm redis
查看日志 docker logs redis
进入容器 docker exec -it redis sh
连接 Redis CLI docker exec -it redis redis-cli
常用命令及参数详解
命令 参数说明
redis-cli -h host -p 6379 -a password -h 主机,-p 端口,-a 密码,直接认证连接
SET key value EX 60 设置键值,EX 60 表示 60 秒后过期(TTL)
GET key 获取键值
INFO 查看 Redis 服务器信息(内存、连接数等)
MONITOR 实时监控所有执行的命令(调试使用)
redis-cli --bigkeys 扫描大 Key,分析内存占用

2.5 Elasticsearch

**注意:**Elasticsearch 8.x 默认启用了安全认证,初始密码会在日志中生成。生产环境建议同时部署 Kibana。

复制代码
# 拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.0

# 运行单节点(开发环境)
docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "xpack.security.enabled=false" \
  -v es_data:/usr/share/elasticsearch/data \
  --restart unless-stopped \
  docker.elastic.co/elasticsearch/elasticsearch:8.12.0

# 验证
curl http://localhost:9200

**内存提示:**ES 默认 JVM 堆内存 1GB,可通过 ES_JAVA_OPTS 调整。建议不超过物理内存的 50%,且不超过 32GB。

密码设置

**安全说明:**开发环境关闭安全认证方便调试。生产环境必须开启 xpack.security

复制代码
# 生产环境启动(开启安全认证)
docker run -d --name elasticsearch \
  -e "xpack.security.enabled=true" \
  -e "xpack.security.enrollment.enabled=true" \
  ...

# 查看自动生成的初始密码
docker logs elasticsearch | grep "PASSWORD"

# 重置 elastic 用户密码
docker exec -it elasticsearch bin/elasticsearch-reset-password -u elastic

# 修改内置用户密码
docker exec -it elasticsearch bin/elasticsearch-reset-password -u kibana_system
验证与停止
操作 命令
启动验证 curl http://localhost:9200(返回集群信息 JSON)
停止容器 docker stop elasticsearch
删除容器 docker rm elasticsearch
查看日志 docker logs elasticsearch
进入容器 docker exec -it elasticsearch bash
健康检查 curl http://localhost:9200/_cluster/health
常用命令及参数详解
命令 参数说明
curl http://localhost:9200/_cluster/health 查看集群健康状态(green/yellow/red)
curl http://localhost:9200/_cat/indices?v v 显示表头,列出所有索引
curl -X PUT "localhost:9200/my_index" -X PUT 创建索引 my_index
curl -X DELETE "localhost:9200/my_index" -X DELETE 删除索引
curl -X POST "localhost:9200/my_index/_doc" -H "Content-Type: application/json" -d '{"name":"test"}' -H 设置请求头,-d 发送 JSON 数据创建文档
curl "localhost:9200/my_index/_search?q=name:test" _search 搜索,q= 查询条件

2.6 MongoDB

复制代码
# 拉取镜像
docker pull mongo:7

# 运行容器
docker run -d \
  --name mongodb \
  -p 27017:27017 \
  -e MONGO_INITDB_ROOT_USERNAME=root \
  -e MONGO_INITDB_ROOT_PASSWORD=your_password \
  -v mongo_data:/data/db \
  --restart unless-stopped \
  mongo:7

# 连接测试
docker exec -it mongodb mongosh -u root -p
密码设置

**初始化密码:**启动时通过 MONGO_INITDB_ROOT_PASSWORD 设置 root 密码。

复制代码
# 启动时设置 root 密码
docker run -d --name mongodb \
  -e MONGO_INITDB_ROOT_USERNAME=root \
  -e MONGO_INITDB_ROOT_PASSWORD=your_password \
  ...

# 进入 MongoDB 后修改 root 密码
docker exec -it mongodb mongosh -u root -p
use admin
db.changeUserPassword("root", "new_password")

# 创建应用用户
db.createUser({
  user: "appuser",
  pwd: "apppass",
  roles: [{ role: "readWrite", db: "mydb" }]
})
验证与停止
操作 命令
启动验证 docker exec -it mongodb mongosh -u root -p --eval "db.adminCommand('ping')"
停止容器 docker stop mongodb
删除容器 docker rm mongodb
查看日志 docker logs mongodb
进入容器 docker exec -it mongodb bash
连接 Mongo Shell docker exec -it mongodb mongosh -u root -p
常用命令及参数详解
命令 参数说明
mongosh -u root -p --authenticationDatabase admin -u 用户名,-p 提示密码,--authenticationDatabase 认证数据库
show dbs 列出所有数据库
use mydb 切换到 mydb 数据库(不存在则创建)
db.collection.insertOne({name:"test"}) collection 插入单条文档
db.collection.find() 查询所有文档
docker exec mongodb mongodump --out /data/backup mongodump 备份所有数据库到指定目录
docker exec mongodb mongorestore /data/backup mongorestore 从备份目录恢复

2.7 MinIO

复制代码
# 拉取镜像
docker pull minio/minio

# 运行容器
docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v minio_data:/data \
  --restart unless-stopped \
  minio/minio server /data --console-address ":9001"

**说明:**端口 9000 为 API 服务,端口 9001 为 Web 管理控制台。浏览器访问 http://localhost:9001 即可进入管理界面。

密码设置

**初始化密码:**通过环境变量 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 设置管理员账号密码。

复制代码
# 启动时设置管理员密码
docker run -d --name minio \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=StrongPass123" \
  ...

# 通过 mc 客户端修改密码(进入容器)
docker exec -it minio sh
mc alias set local http://localhost:9000 admin StrongPass123
mc admin user add local newuser newpass
mc admin policy set local readwrite user=newuser
验证与停止
操作 命令
启动验证 curl http://localhost:9000/minio/health/live
停止容器 docker stop minio
删除容器 docker rm minio
查看日志 docker logs minio
进入容器 docker exec -it minio sh
管理控制台 浏览器访问 http://localhost:9001
常用命令及参数详解
命令 参数说明
mc alias set 别名 http://host:9000 用户 密码 配置 MinIO 客户端连接别名
mc ls 别名/ 列出所有存储桶(Bucket)
mc mb 别名/bucketname mb = make bucket,创建存储桶
mc cp 本地文件 别名/bucketname/ cp = copy,上传文件到存储桶
mc rm 别名/bucketname/文件名 rm = remove,删除存储桶内文件
mc mirror 本地目录 别名/bucketname/ mirror 同步本地目录到存储桶

2.8 Nacos

复制代码
# 拉取镜像(单机模式)
docker pull nacos/nacos-server:v2.3.0

# 运行容器(单机模式 + 内嵌数据库)
docker run -d \
  --name nacos \
  -e MODE=standalone \
  -e JVM_XMS=256m \
  -e JVM_XMX=256m \
  -p 8848:8848 \
  -p 9848:9848 \
  --restart unless-stopped \
  nacos/nacos-server:v2.3.0

**说明:**单机模式使用内嵌 Derby 数据库,适合开发测试。生产环境建议使用外部 MySQL 数据库,并配置 SPRING_DATASOURCE_PLATFORM=mysql 相关环境变量。Nacos 2.x 需要额外开放 9848 端口(gRPC)。

密码设置

**默认密码:**Nacos 单机模式默认账号 nacos,密码 nacos

复制代码
# 登录控制台后修改密码
# 浏览器访问 http://localhost:8848/nacos
# 账号:nacos  密码:nacos
# 进入"权限控制 > 用户列表"修改密码

# 或通过 Open API 修改密码
curl -X PUT 'http://localhost:8848/nacos/v1/auth/user' \
  -d 'username=nacos&oldPassword=nacos&newPassword=newpass'
验证与停止
操作 命令
启动验证 curl http://localhost:8848/nacos/v1/console/health/readiness
停止容器 docker stop nacos
删除容器 docker rm nacos
查看日志 docker logs nacos
进入容器 docker exec -it nacos bash
管理控制台 浏览器访问 http://localhost:8848/nacos(默认账号密码均为 nacos)
常用命令及参数详解
命令 参数说明
curl /nacos/v1/ns/instance/list?serviceName=my-service 查询服务 my-service 的注册实例列表
curl -X POST /nacos/v1/cs/configs ... 发布配置,dataId 配置 ID,group 分组,content 配置内容
curl /nacos/v1/cs/configs?dataId=xxx&group=yyy 获取指定 dataId 和 group 的配置内容
curl -X DELETE /nacos/v1/cs/configs?dataId=xxx&group=yyy 删除指定配置

2.9 RabbitMQ

复制代码
# 拉取镜像(带管理控制台)
docker pull rabbitmq:3-management

# 运行容器
docker run -d \
  --name rabbitmq \
  -p 5672:5672 \
  -p 15672:15672 \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=admin \
  -v rabbitmq_data:/var/lib/rabbitmq \
  --restart unless-stopped \
  rabbitmq:3-management

**说明:**端口 5672 为 AMQP 协议端口,端口 15672 为 Web 管理控制台。浏览器访问 http://localhost:15672,使用 admin/admin 登录。

密码设置

**初始化密码:**通过环境变量 RABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASS 设置默认用户。

复制代码
# 启动时设置默认用户密码
docker run -d --name rabbitmq \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=admin123 \
  ...

# 进入容器后修改用户密码
docker exec -it rabbitmq bash
rabbitmqctl change_password admin newpassword

# 新增用户并授权
rabbitmqctl add_user newuser newpass
rabbitmqctl set_user_tags newuser administrator
rabbitmqctl set_permissions -p / newuser ".*" ".*" ".*"
验证与停止
操作 命令
启动验证 curl -u admin:admin http://localhost:15672/api/overview
停止容器 docker stop rabbitmq
删除容器 docker rm rabbitmq
查看日志 docker logs rabbitmq
进入容器 docker exec -it rabbitmq bash
管理控制台 浏览器访问 http://localhost:15672
常用命令及参数详解
命令 参数说明
rabbitmqctl list_queues 列出所有队列及消息数
rabbitmqctl list_users 列出所有用户
rabbitmqctl list_connections 列出所有客户端连接
rabbitmqctl status 查看节点运行状态
rabbitmqctl purge_queue queue_name 清空指定队列中的所有消息
rabbitmqadmin -u admin -p admin list queues 通过 HTTP API 列出队列(需安装 rabbitmqadmin)

2.10 RocketMQ

RocketMQ 需要分别启动 NameServer 和 Broker,推荐使用 docker-compose。

复制代码
# 拉取镜像
docker pull apache/rocketmq:5.1.4

# 1. 启动 NameServer
docker run -d \
  --name rmqnamesrv \
  -p 9876:9876 \
  --restart unless-stopped \
  apache/rocketmq:5.1.4 \
  sh mqnamesrv

# 2. 启动 Broker
docker run -d \
  --name rmqbroker \
  -p 10911:10911 \
  -p 10909:10909 \
  --restart unless-stopped \
  -e "NAMESRV_ADDR=host.docker.internal:9876" \
  apache/rocketmq:5.1.4 \
  sh mqbroker -n host.docker.internal:9876

**注意:**如果 NameServer 和 Broker 在同一台宿主机上,NAMESRV_ADDR 使用 host.docker.internal 或宿主机实际 IP,不要使用 localhost(容器内 localhost 指向容器自身)。

可选:RocketMQ Dashboard(管理控制台)
复制代码
docker run -d \
  --name rmqdashboard \
  -p 8080:8080 \
  -e "JAVA_OPTS=-Drocketmq.namesrv.addr=host.docker.internal:9876" \
  --restart unless-stopped \
  apacherocketmq/rocketmq-dashboard:1.0.0
密码设置

**说明:**RocketMQ 默认无密码认证。生产环境建议配置 ACL 访问控制。

复制代码
# 在 Broker 配置中启用 ACL
cat > /path/to/broker.conf <
验证与停止
操作 命令
启动验证(NameServer) `docker logs rmqnamesrv
启动验证(Broker) `docker logs rmqbroker
停止 NameServer docker stop rmqnamesrv
停止 Broker docker stop rmqbroker
删除容器 docker rm rmqnamesrv rmqbroker rmqdashboard
查看日志 docker logs rmqnamesrv / docker logs rmqbroker
进入容器 docker exec -it rmqnamesrv sh
管理控制台 浏览器访问 http://localhost:8080
常用命令及参数详解
命令 参数说明
mqadmin topicList -n namesrv:9876 -n 指定 NameServer 地址,列出所有 Topic
mqadmin updateTopic -n namesrv:9876 -t topic -c cluster -t Topic 名,-c 集群名,创建/更新 Topic
mqadmin consumerProgress -n namesrv:9876 查看所有消费者组的消费进度
mqadmin brokerStatus -n namesrv:9876 -b broker:10911 -b Broker 地址,查看 Broker 状态

2.11 Nginx

复制代码
# 拉取镜像
docker pull nginx:1.25

# 运行容器
docker run -d \
  --name nginx \
  -p 80:80 \
  -p 443:443 \
  -v nginx_conf:/etc/nginx \
  -v nginx_html:/usr/share/nginx/html \
  -v nginx_logs:/var/log/nginx \
  --restart unless-stopped \
  nginx:1.25

# 验证
curl http://localhost

**说明:**将本地配置文件挂载到容器内即可自定义 Nginx 配置。例如: -v /my/nginx.conf:/etc/nginx/nginx.conf

密码设置

**说明:**Nginx 本身无内置用户密码系统。可通过 Basic Auth 为站点添加密码保护。

复制代码
# 1. 在宿主机生成密码文件
sudo apt-get install -y apache2-utils
htpasswd -c /my/htpasswd admin
# 输入密码确认

# 2. 挂载密码文件到容器,并在 nginx.conf 中配置
# location / {
#     auth_basic "Restricted";
#     auth_basic_user_file /etc/nginx/htpasswd;
# }

# 3. 带密码文件启动 Nginx
docker run -d --name nginx \
  -v /my/htpasswd:/etc/nginx/htpasswd:ro \
  -v /my/nginx.conf:/etc/nginx/nginx.conf:ro \
  ...
验证与停止
操作 命令
启动验证 curl -I http://localhost(返回 HTTP 200)
停止容器 docker stop nginx
删除容器 docker rm nginx
查看日志 docker logs nginx
进入容器 docker exec -it nginx bash
重载配置 docker exec nginx nginx -s reload
检查配置 docker exec nginx nginx -t
常用命令及参数详解
命令 参数说明
nginx -t 测试配置文件语法是否正确
nginx -s reload -s 发送信号,reload 重新加载配置(不中断连接)
nginx -s stop 快速停止 Nginx
nginx -s quit 优雅退出(处理完当前请求后停止)
docker cp nginx:/etc/nginx/nginx.conf ./nginx.conf 从容器复制默认配置文件到本地修改
docker exec nginx nginx -V 查看 Nginx 编译参数和模块列表

2.12 Docker Compose 一键部署示例

以下 docker-compose.yml 可以一键启动 MySQL、Redis、Nacos 等常用中间件。

复制代码
version: '3.8'

services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root123456
      MYSQL_DATABASE: mydb
      MYSQL_CHARACTER_SET_SERVER: utf8mb4
      MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped

  redis:
    image: redis:7
    container_name: redis
    ports:
      - "6379:6379"
    command: redis-server --appendonly yes --requirepass redis123456
    volumes:
      - redis_data:/data
    restart: unless-stopped

  nacos:
    image: nacos/nacos-server:v2.3.0
    container_name: nacos
    ports:
      - "8848:8848"
      - "9848:9848"
    environment:
      MODE: standalone
      JVM_XMS: 256m
      JVM_XMX: 256m
    restart: unless-stopped

  rabbitmq:
    image: rabbitmq:3-management
    container_name: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: admin123456
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq
    restart: unless-stopped

  nginx:
    image: nginx:1.25
    container_name: nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - nginx_html:/usr/share/nginx/html
    restart: unless-stopped

  minio:
    image: minio/minio
    container_name: minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin123456
    volumes:
      - minio_data:/data
    command: server /data --console-address ":9001"
    restart: unless-stopped

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
    container_name: elasticsearch
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      discovery.type: single-node
      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
      xpack.security.enabled: "false"
    volumes:
      - es_data:/usr/share/elasticsearch/data
    restart: unless-stopped

  mongodb:
    image: mongo:7
    container_name: mongodb
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: mongo123456
    volumes:
      - mongo_data:/data/db
    restart: unless-stopped

volumes:
  mysql_data:
  redis_data:
  rabbitmq_data:
  nginx_html:
  minio_data:
  es_data:
  mongo_data:

# 启动所有服务
docker compose up -d

# 查看运行状态
docker compose ps

# 停止所有服务
docker compose down

# 停止并删除数据卷(慎用!)
docker compose down -v

三、Linux 独立安装常用软件

3.1 安装 JDK 8

方式一:通过 apt 安装(Ubuntu)
复制代码
sudo apt-get update
sudo apt-get install -y openjdk-8-jdk

# 验证
java -version

**注意:**Ubuntu 22.04+ 默认仓库可能不再提供 JDK 8。如遇找不到包的问题,使用方式二手动安装。

方式二:手动下载安装(通用)
复制代码
# 1. 下载 JDK 8(以 Temurin 为例)
wget https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u412-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz

# 2. 解压
sudo mkdir -p /usr/lib/jvm
sudo tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u412b08.tar.gz -C /usr/lib/jvm/

# 3. 配置环境变量
sudo tee -a /etc/profile.d/java8.sh <<'EOF'
export JAVA_8_HOME=/usr/lib/jvm/jdk8u412-b08
export PATH=$JAVA_8_HOME/bin:$PATH
EOF

source /etc/profile.d/java8.sh

# 4. 验证
java -version
CentOS / yum 安装
复制代码
# CentOS 7
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

# CentOS 8 / dnf
sudo dnf install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

# 验证
java -version
安装成功验证与常用命令
命令 说明
java -version 查看 Java 版本,确认 JDK 8 已正确安装
javac -version 查看 Java 编译器版本
which java 查看 Java 可执行文件路径
echo $JAVA_HOME 查看 JAVA_HOME 环境变量是否设置
java -cp . Hello -cp 指定类路径,运行 Hello.class
密码/访问说明

**说明:**JDK 本身无密码系统。Java 应用如需安全认证,需通过代码实现(如 Spring Security、JAAS 等)。


3.2 安装 JDK 17

方式一:通过 apt 安装(Ubuntu)
复制代码
sudo apt-get update
sudo apt-get install -y openjdk-17-jdk

# 验证
java -version
方式二:手动下载安装(通用)
复制代码
# 1. 下载 JDK 17
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.12+7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.12_7.tar.gz

# 2. 解压
sudo mkdir -p /usr/lib/jvm
sudo tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.12_7.tar.gz -C /usr/lib/jvm/

# 3. 配置环境变量
sudo tee -a /etc/profile.d/java17.sh <<'EOF'
export JAVA_17_HOME=/usr/lib/jvm/jdk-17.0.12+7
export PATH=$JAVA_17_HOME/bin:$PATH
EOF

source /etc/profile.d/java17.sh

# 4. 验证
java -version
多版本 JDK 共存切换

当系统同时安装了 JDK 8 和 JDK 17 时,可以使用 update-alternatives 进行版本切换。

复制代码
# 注册所有 JDK 版本到 alternatives 系统
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk8u412-b08/bin/java 1
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17.0.12+7/bin/java 2

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk8u412-b08/bin/javac 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17.0.12+7/bin/javac 2

# 切换 Java 版本
sudo update-alternatives --config java
sudo update-alternatives --config javac

# 验证
java -version
CentOS / yum 安装
复制代码
sudo yum install -y java-17-openjdk java-17-openjdk-devel

# 验证
java -version
安装成功验证与常用命令
命令 说明
java -version 查看当前默认 Java 版本
javac -version 查看 Java 编译器版本
which java 查看 Java 可执行文件路径
echo $JAVA_HOME 查看 JAVA_HOME 环境变量
update-alternatives --config java 切换多版本 JDK(需 root)
java -Xms512m -Xmx1024m -jar app.jar 指定堆内存运行 JAR 包
javac -d . Hello.java 编译 Java 文件到当前目录
密码/访问说明

**说明:**JDK 本身无密码系统。Java 应用如需安全认证,需通过代码实现(如 Spring Security、JAAS 等)。


3.3 安装 Python

Ubuntu(apt)
复制代码
# 安装 Python 3 及 pip
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv

# 验证
python3 --version
pip3 --version
CentOS(yum / dnf)
复制代码
# CentOS 7
sudo yum install -y python3 python3-pip

# CentOS 8+
sudo dnf install -y python3 python3-pip

# 验证
python3 --version
安装特定版本(如 Python 3.12)
复制代码
# 方式一:使用 deadsnakes PPA(Ubuntu)
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install -y python3.12 python3.12-venv python3.12-dev

# 方式二:源码编译(通用)
# 安装编译依赖
sudo apt-get install -y build-essential zlib1g-dev libncurses5-dev \
    libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev \
    libsqlite3-dev wget libbz2-dev

# 下载并编译
wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tgz
tar -xf Python-3.12.4.tgz
cd Python-3.12.4

./configure --enable-optimizations --prefix=/usr/local
make -j$(nproc)
sudo make altinstall

# 验证
python3.12 --version

推荐使用虚拟环境: python3 -m venv myenv source myenv/bin/activate pip install <package_name>

安装成功验证与常用命令
命令 说明
python3 --version 查看 Python 版本
pip3 --version 查看 pip 版本
which python3 查看 Python 安装路径
python3 -m venv myenv 创建名为 myenv 的虚拟环境
source myenv/bin/activate 激活虚拟环境(Linux/macOS)
deactivate 退出虚拟环境
pip install 包名 安装 Python 包
pip install -r requirements.txt 按文件批量安装依赖
pip list 列出已安装的所有包
pip uninstall 包名 卸载指定包
密码/访问说明

**说明:**Python 本身无密码系统。运行 Web 框架(Django/Flask/FastAPI)时,密码认证由各框架自行管理。虚拟环境隔离不同项目的依赖。


3.4 安装 Nginx

Ubuntu(apt)
复制代码
# 安装
sudo apt-get update
sudo apt-get install -y nginx

# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# 验证
curl http://localhost
# 或浏览器访问服务器 IP
CentOS(yum / dnf)
复制代码
# 安装 EPEL 仓库
sudo yum install -y epel-release

# 安装 Nginx
sudo yum install -y nginx

# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# 验证
curl http://localhost
从 Nginx 官方仓库安装最新版(Ubuntu)
复制代码
# 安装依赖
sudo apt-get install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring

# 添加 Nginx 官方签名密钥和仓库
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
  | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
  http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
  | sudo tee /etc/apt/sources.list.d/nginx.list

sudo apt-get update
sudo apt-get install -y nginx
常用 Nginx 命令
复制代码
# 启动 / 停止 / 重启
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

# 重新加载配置(不中断服务)
sudo systemctl reload nginx

# 检查配置文件语法
sudo nginx -t

# 查看状态
sudo systemctl status nginx

# 配置文件位置
# 主配置: /etc/nginx/nginx.conf
# 站点配置: /etc/nginx/conf.d/
# 默认页面: /usr/share/nginx/html/
安装成功验证与访问

**访问验证:**浏览器访问服务器 IP 或 http://localhost,看到 "Welcome to nginx!" 即成功。 配置文件路径: /etc/nginx/nginx.conf(主配置),/etc/nginx/conf.d/(站点配置),/usr/share/nginx/html/(默认页面)。

复制代码
# 测试配置文件语法
sudo nginx -t

# 重载配置(不中断服务)
sudo systemctl reload nginx

# 查看 Nginx 版本和编译参数
nginx -V

# 查看 Nginx 进程
ps -ef | grep nginx

# 查看 Nginx 监听的端口
sudo ss -tlnp | grep nginx
常用配置参数详解
配置项 说明
listen 80; 监听 80 端口(HTTP 默认)
server_name example.com; 绑定的域名
root /var/www/html; 网站根目录
index index.html; 默认首页文件
location /api { proxy_pass http://backend; } 反向代理到后端服务
location / { try_files $uri $uri/ =404; } 尝试匹配文件,不存在返回 404
密码设置

**说明:**Nginx 本身无内置用户系统。可通过 Basic Auth 为站点添加密码保护。

复制代码
# 安装 apache2-utils 生成密码文件
sudo apt-get install -y apache2-utils
sudo htpasswd -c /etc/nginx/htpasswd admin
# 输入密码确认

# 在站点配置中添加认证
# location / {
#     auth_basic "Restricted Area";
#     auth_basic_user_file /etc/nginx/htpasswd;
# }

3.5 安装 Git

复制代码
# Ubuntu
sudo apt-get update
sudo apt-get install -y git

# CentOS
sudo yum install -y git

# 验证
git --version
安装成功验证与常用命令
命令 说明
git --version 查看 Git 版本
git config --global user.name "Name" 设置全局用户名
git config --global user.email "email@example.com" 设置全局邮箱
git clone https://github.com/user/repo.git 克隆远程仓库
git status 查看工作区状态
git add . 添加所有改动到暂存区
git commit -m "message" 提交暂存区改动
git push origin main 推送本地提交到远程 main 分支
git pull origin main 拉取远程 main 分支最新代码
密码/访问说明

**说明:**Git 本身无密码系统。访问远程仓库时使用 SSH 密钥或 HTTPS 密码/token 认证。 SSH 密钥配置: ssh-keygen -t rsa -b 4096 生成密钥对,将公钥添加到 Git 平台(GitHub/GitLab 等)。 **HTTPS 认证:**首次推送时输入用户名和密码(或使用 Personal Access Token)。


3.6 安装 Maven

复制代码
# 1. 下载 Maven
wget https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz

# 2. 解压
sudo tar -zxvf apache-maven-3.9.8-bin.tar.gz -C /opt/

# 3. 配置环境变量
sudo tee -a /etc/profile.d/maven.sh <<'EOF'
export MAVEN_HOME=/opt/apache-maven-3.9.8
export PATH=$MAVEN_HOME/bin:$PATH
EOF

source /etc/profile.d/maven.sh

# 4. 验证
mvn -version

**加速国内 Maven 仓库:**修改 $MAVEN_HOME/conf/settings.xml,在 <mirrors> 中添加阿里云镜像:

复制代码
<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>
安装成功验证与常用命令
命令 说明
mvn -version 查看 Maven 版本和 JDK 信息
mvn clean 清理 target 目录
mvn compile 编译源代码
mvn test 运行单元测试
mvn package 打包(生成 JAR/WAR)
mvn install 打包并安装到本地仓库
mvn clean install -DskipTests 清理后打包安装,跳过测试
mvn dependency:tree 查看项目依赖树
mvn spring-boot:run 运行 Spring Boot 应用
密码/访问说明

**说明:**Maven 本身无密码系统。访问私有仓库时,在 ~/.m2/settings.xml 中配置服务器认证信息。 **配置仓库密码示例:**在 <servers> 节点下添加 <server><id>...</id><username>...</username><password>...</password></server>

四、各镜像验证 / 停止 / 常用命令速查总表

镜像 启动验证 停止 删除 查看日志 进入容器
Docker docker run hello-world sudo systemctl stop docker --- journalctl -u docker ---
OpenJDK 8/17 docker run --rm eclipse-temurin:17-jdk java -version docker stop openjdk17 docker rm openjdk17 docker logs openjdk17 docker exec -it openjdk17 bash
Python docker run --rm python:3.12 python --version docker stop python docker rm python docker logs python docker exec -it python bash
MySQL docker exec -it mysql mysql -uroot -p -e "SELECT 1;" docker stop mysql docker rm mysql docker logs mysql docker exec -it mysql bash
Redis docker exec -it redis redis-cli ping docker stop redis docker rm redis docker logs redis docker exec -it redis sh
Elasticsearch curl http://localhost:9200 docker stop elasticsearch docker rm elasticsearch docker logs elasticsearch docker exec -it elasticsearch bash
MongoDB docker exec -it mongodb mongosh -u root -p --eval "db.adminCommand('ping')" docker stop mongodb docker rm mongodb docker logs mongodb docker exec -it mongodb bash
MinIO curl http://localhost:9000/minio/health/live docker stop minio docker rm minio docker logs minio docker exec -it minio sh
Nacos curl http://localhost:8848/nacos/v1/console/health/readiness docker stop nacos docker rm nacos docker logs nacos docker exec -it nacos bash
RabbitMQ curl -u admin:admin http://localhost:15672/api/overview docker stop rabbitmq docker rm rabbitmq docker logs rabbitmq docker exec -it rabbitmq bash
RocketMQ `docker logs rmqnamesrv grep "boot success"` docker stop rmqnamesrv rmqbroker docker rm rmqnamesrv rmqbroker rmqdashboard docker logs rmqnamesrv
Nginx curl -I http://localhost docker stop nginx docker rm nginx docker logs nginx docker exec -it nginx bash

4.1 各镜像特色常用命令

镜像 常用命令
MySQL docker exec mysql mysqldump -uroot -p mydb > backup.sql(备份) docker exec -i mysql mysql -uroot -p mydb < backup.sql(恢复)
Redis docker exec -it redis redis-cli info(查看信息) docker exec -it redis redis-cli monitor(实时监控)
Elasticsearch curl http://localhost:9200/_cluster/health(集群健康) curl http://localhost:9200/_cat/indices?v(查看索引)
MongoDB docker exec -it mongodb mongosh -u root -p(进入 Shell) docker exec mongodb mongodump --out /data/backup(备份)
MinIO docker exec -it minio mc alias set local http://localhost:9000 minioadmin minioadmin(配置 mc 客户端)
Nacos 浏览器访问 http://localhost:8848/nacos(默认 nacos/nacos)
RabbitMQ docker exec rabbitmq rabbitmqctl list_queues(查看队列)
RocketMQ 浏览器访问 http://localhost:8080(Dashboard)
Nginx docker exec nginx nginx -s reload(重载配置) docker exec nginx nginx -t(检查配置)

五、常见问题与排错

5.1 Docker 常见问题

问题 解决方案
Cannot connect to the Docker daemon sudo systemctl start docker 启动 Docker 服务
拉取镜像超时 配置镜像加速器(见 1.4 节)
端口被占用 lsof -i :端口号 查看占用进程,或更改映射端口
容器启动后立即退出 docker logs 容器名 查看日志排查原因
permission denied 将当前用户加入 docker 组:sudo usermod -aG docker $USER
ES 启动报 vm.max_map_count sudo sysctl -w vm.max_map_count=262144 并写入 /etc/sysctl.conf

5.2 Ubuntu vs CentOS 命令对照

操作 Ubuntu (apt) CentOS (yum/dnf)
更新软件包索引 sudo apt-get update sudo yum makecache
安装软件包 sudo apt-get install pkg sudo yum install pkg
卸载软件包 sudo apt-get remove pkg sudo yum remove pkg
搜索软件包 apt-cache search pkg sudo yum search pkg
查看已安装 `dpkg -l grep pkg`
清理缓存 sudo apt-get clean sudo yum clean all

5.3 常用运维命令速查

复制代码
# Docker 相关
docker ps                          # 查看运行中的容器
docker ps -a                       # 查看所有容器(含已停止)
docker images                      # 查看所有镜像
docker logs <容器名>                   # 查看容器日志
docker exec -it <容器名> bash       # 进入容器
docker stop <容器名>                  # 停止容器
docker rm <容器名>                    # 删除容器
docker system prune                 # 清理无用镜像/容器/网络

# 端口与防火墙
sudo ufw allow 3306/tcp             # Ubuntu 防火墙放行端口
sudo firewall-cmd --add-port=3306/tcp --permanent  # CentOS 防火墙
sudo firewall-cmd --reload

# 查看端口占用
sudo lsof -i :8080
sudo netstat -tlnp | grep 8080

如果本文对你有帮助,欢迎点赞、收藏和评论交流!后续会持续更新更多运维实战内容。