Docker常用命令

Docker常用命令

以下是一份面向 Java 开发工程师的 Docker 常用命令速查清单,涵盖了镜像管理、容器操作、日志查看、网络与卷管理等核心内容,并结合 Java 应用场景做了简要说明。


🐳 一、镜像(Image)相关命令

命令 说明
docker images 列出本地所有镜像
docker pull <image> 从仓库拉取镜像(如 docker pull openjdk:17
docker build -t <name>:<tag> . 构建镜像(通常配合 Dockerfile. 表示当前目录)
docker rmi <image> 删除本地镜像
docker tag <source> <target> 给镜像打标签(如 docker tag myapp:latest myregistry/myapp:v1
docker push <image> 推送镜像到远程仓库(需先登录)

💡 Java 场景:常用基础镜像如 openjdk:17-jdk-slimeclipse-temurin:17-jdk-alpine


🚢 二、容器(Container)操作命令

命令 说明
docker run -d -p 8080:8080 --name myapp myimage 后台运行容器,端口映射,指定名称
docker ps 查看正在运行的容器
docker ps -a 查看所有容器(包括已停止的)
docker stop <container> 停止容器
docker start <container> 启动已停止的容器
docker restart <container> 重启容器
docker rm <container> 删除容器(需先停止)
docker rm -f <container> 强制删除正在运行的容器
docker exec -it <container> /bin/bash 进入容器内部(调试用)
docker logs -f <container> 实时查看容器日志(Java 应用输出日志必备)
docker logs --tail 100 <container> 查看最近 100 行日志

💡 Java 场景:Spring Boot 应用通常打包为 JAR,通过 java -jar app.jar 启动,端口默认 8080。


📦 三、构建 Java 应用镜像(Dockerfile 示例)

Dockerfile 复制代码
# 使用官方 OpenJDK 17 镜像
FROM openjdk:17-jdk-slim

# 设置工作目录
WORKDIR /app

# 复制 JAR 文件到容器
COPY target/myapp.jar app.jar

# 暴露端口
EXPOSE 8080

# 启动应用
ENTRYPOINT ["java", "-jar", "app.jar"]

构建命令:

bash 复制代码
docker build -t myapp:1.0 .

运行命令:

bash 复制代码
docker run -d -p 8080:8080 --name myapp-container myapp:1.0

🗃️ 四、数据卷(Volume)与挂载

命令 说明
docker volume create myvol 创建命名卷
docker run -v myvol:/app/data ... 挂载命名卷到容器路径
docker run -v /host/path:/container/path ... 挂载主机目录(开发调试常用)
docker volume ls 列出所有卷
docker volume rm myvol 删除卷

💡 Java 场景:可用于持久化配置文件(如 application.yml)、日志或上传文件。


🌐 五、网络(Network)管理

命令 说明
docker network ls 查看网络
docker network create mynet 创建自定义网络
docker run --network mynet ... 将容器加入指定网络
docker network inspect mynet 查看网络详情

💡 Java 场景:微服务之间通信建议使用自定义 bridge 网络,可通过服务名互相访问。


🔍 六、其他实用命令

命令 说明
docker system df 查看 Docker 磁盘使用情况
docker system prune 清理无用容器、镜像、网络、缓存(谨慎使用)
docker stats 实时监控容器资源使用(CPU/内存等)
docker inspect <container> 查看容器详细信息(IP、挂载点等)

✅ 小贴士(Java 开发者专属)

  1. 避免在容器中使用 latest 标签 :应固定 JDK 版本(如 openjdk:17.0.10-jdk-slim)。

  2. 多阶段构建 可减小镜像体积:

    Dockerfile 复制代码
    FROM maven:3.9-eclipse-temurin-17 AS builder
    COPY . .
    RUN mvn clean package -DskipTests
    
    FROM eclipse-temurin:17-jre-alpine
    COPY --from=builder target/app.jar app.jar
    ENTRYPOINT ["java", "-jar", "app.jar"]
  3. 健康检查 :可在 Dockerfiledocker run 中添加 HEALTHCHECK,便于 Kubernetes 或 Docker Compose 监控应用状态。

相关推荐
leeyi17 小时前
把软件装进不能上网的机房——一套建好了、还没上过战场的交付工程(第101篇)
docker·aigc·agent
YIAN19 小时前
Docker + Nginx 核心原理扫盲:从环境隔离到反向代理,运维面试必考点
后端·docker·面试
IT大白鼠1 天前
Docker 实战 ELKF 日志监控:容器日志全栈收集分析方案
运维·docker·容器
贝锐1 天前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20041 天前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
报错小能手1 天前
Kubernetes入门实战课 3
云原生·容器·kubernetes
天远Date Lab1 天前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
2601_962074681 天前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器
小张同学a.1 天前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
大模型丫丫1 天前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器