首页  

docker 命令实战 单台物理机上使用 Docker 部署 Java 应用、Redis、MySQL、PostgreSQL 和 MinIO     所属分类 docker 浏览量 19
单台物理机上使用 Docker 部署 Java 应用、Redis、MySQL、PostgreSQL 和 MinIO 

常用命令覆盖了日常运维中的启动管理、日志查看、数据备份、性能监控等场景,
可根据实际部署情况调整参数
对于多容器管理,建议使用docker-compose来简化操作

容器基础操作

docker -v 
Docker version 23.0.0, build e92dd87


查看 Docker 系统信息
docker info

docker ps


# 查看运行中容器的完整命令
docker ps --no-trunc
--no-trunc 参数的作用是 "不截断输出内容",会完整显示容器启动时的完整命令、参数 和 入口点(entrypoint)


查看所有容器(包括停止的)
docker ps -a

启动 / 停止 / 重启容器
docker start [容器ID/名称]
docker stop [容器ID/名称]
docker restart [容器ID/名称]

删除容器
docker rm [容器ID/名称]  # 删除停止的容器
docker rm -f [容器ID/名称]  # 强制删除运行中的容器

日志管理
实时查看容器日志
docker logs -f [容器ID/名称]

查看指定行数日志
docker logs --tail 200 [容器ID/名称]  # 查看最后200行

查看时间段日志
docker logs --since 2023-08-01 --until 2023-08-02 [容器ID/名称]

镜像管理
查看本地镜像
docker images

拉取所需镜像
docker pull redis:alpine
docker pull mysql:8.0
docker pull postgres:15
docker pull minio/minio:latest

构建 Java 应用镜像
docker build -t my-java-app:v1.2 .  # 基于当前目录Dockerfile构建

删除镜像
docker rmi [镜像ID/名称]

容器交互
进入容器终端
docker exec -it [容器ID/名称] /bin/bash  # 大多数镜像
docker exec -it [容器ID/名称] /bin/sh     # Alpine基础镜像

在容器内执行单条命令
docker exec [容器ID/名称] cat /app/config.properties

数据管理
查看数据卷
docker volume ls
docker volume inspect [卷名称]  # 查看卷详情

创建数据卷
docker volume create minio-data
docker volume create mysql-data

删除未使用的数据卷
docker volume prune

网络管理
创建自定义网络(推荐容器间通信使用)
docker network create app-network

查看网络列表
docker network ls

将容器连接到网络
docker network connect app-network [容器ID/名称]

各服务专项操作

MySQL
# 进入MySQL命令行
docker exec -it mysql-container mysql -u root -p

# 导出数据库
docker exec mysql-container mysqldump -u root -p[密码] 数据库名 > backup.sql

# 导入数据库
cat backup.sql | docker exec -i mysql-container mysql -u root -p[密码] 数据库名



PostgreSQL
# 进入PostgreSQL命令行
docker exec -it pgsql-container psql -U 用户名 -d 数据库名

# 导出数据库
docker exec pgsql-container pg_dump -U 用户名 数据库名 > backup.sql

# 导入数据库
cat backup.sql | docker exec -i pgsql-container psql -U 用户名 -d 数据库名



Redis
# 进入Redis命令行
docker exec -it redis-container redis-cli

# 查看Redis信息
docker exec -it redis-container redis-cli info



MinIO
# 进入MinIO容器
docker exec -it minio-container /bin/sh

# 使用mc工具(MinIO客户端)配置
docker exec -it minio-container mc config host add myminio http://localhost:9000 用户名 密码

# 查看MinIO存储桶
docker exec -it minio-container mc ls myminio




Java 应用
# 查看Java进程
docker exec [java容器名] jps

# 查看JVM参数
docker exec [java容器名] jinfo [进程ID]

# 线程dump
docker exec [java容器名] jstack [进程ID] > thread_dump.txt
资源监控
查看容器资源占用
docker stats  # 实时监控
docker stats --no-stream [容器ID/名称]  # 查看一次



常用部署命令示例
# 启动MinIO
docker run -d --name minio \
  -p 9000:9000 -p 9001:9001 \
  -v minio-data:/data \
  -e MINIO_ROOT_USER=minioadmin \
  -e MINIO_ROOT_PASSWORD=minioadmin \
  --network app-network \
  minio/minio server /data --console-address ":9001"

# 启动Java应用(连接所有服务)
docker run -d --name java-app \
  -p 8080:8080 \
  -e SPRING_PROFILES_ACTIVE=prod \
  --network app-network \
  my-java-app:v1.2




把容器内目录复制到宿主机 
docker cp 容器名称或ID:容器内目录路径  宿主机目标路径

上一篇    
docker info 结果示例说明

mybatisplus IService 与 BaseMapper 的区别

LLM本质上是“猜词”系统,它根本看不懂世界