百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Docker 命令详解

mhr18 2025-05-24 15:39 3 浏览 0 评论


docker images — 查看本地镜像

命令

docker images

说明

列出本地已下载的所有镜像及其标签、ID、大小等信息。

适用场景

查看本地镜像资源、准备删除或管理镜像时。

常见用法

  • docker images -a 显示所有(包括中间层)镜像
  • docker images | grep nginx 只看nginx相关镜像

常见错误

实战案例

docker images

docker pull — 拉取镜像

命令

docker pull 镜像名:标签
# 例:docker pull nginx:latest

说明

从远程仓库拉取镜像到本地。

适用场景

首次部署、镜像更新、拉取指定版本。

常见用法

  • 拉取指定版本:docker pull redis:6.2
  • 只写镜像名默认拉取latest

常见错误

  • 网络不通:pull access denied
  • 镜像不存在:manifest not found

实战案例

docker pull nginx:latest
docker pull redis:6.2

docker build — 构建镜像

命令

docker build -t 镜像名:标签 .

说明

根据 Dockerfile 构建自定义镜像。

适用场景

本地开发、定制环境、自动化CI/CD。

常见用法

  • docker build -t myapp:v1 . 构建当前目录镜像
  • docker build -f path/Dockerfile . 指定Dockerfile路径

常见错误

  • Dockerfile语法错误
  • 构建上下文路径错误

实战案例

docker build -t mynginx:v1 .

docker rmi — 删除镜像

命令

docker rmi 镜像名/ID

说明

删除指定的镜像。

适用场景

清理无用镜像、释放磁盘空间。

常见用法

  • docker rmi nginx:latest 删除指定镜像
  • docker rmi $(docker images -q) 批量删除所有镜像

常见错误

  • 镜像被容器占用:Error response: conflict

实战案例

docker rmi nginx:latest

docker run — 运行容器

命令

docker run -d --name 容器名 -p 主机端口:容器端口 镜像名

说明

后台运行一个容器,并映射端口。

适用场景

首次部署服务、测试镜像、快速启动应用。

常见用法

  • docker run -it ubuntu bash 进入交互式终端
  • docker run -v /host:/container 挂载主机目录
  • docker run --rm 镜像名 运行后自动删除容器

常见错误

  • 端口已被占用:Error starting userland proxy: listen tcp
  • 镜像不存在:Unable to find image

实战案例

docker run -d --name mynginx -p 8080:80 nginx

docker exec — 进入容器

命令

docker exec -it 容器名/ID bash

说明

进入容器内部,进行交互式操作。

适用场景

调试、排查、手动操作容器内环境。

常见用法

  • docker exec -it mynginx bash 进入nginx容器
  • docker exec -u root 容器名 bash 以root身份进入

常见错误

  • 容器未运行:Error: No such container

实战案例

docker exec -it mynginx bash

docker logs — 查看日志

命令

docker logs -f 容器名/ID

说明

实时查看容器输出日志。

适用场景

排查服务异常、查看输出、调试。

常见用法

  • docker logs -f mynginx 实时跟踪日志
  • docker logs --tail 100 mynginx 查看最后100行

常见错误

  • 容器未运行:Error: No such container

实战案例

docker logs -f mynginx

docker system prune — 一键清理

命令

docker system prune -a

说明

一键清理无用的镜像、容器、网络等,释放空间。

适用场景

磁盘空间不足、定期维护。

常见用法

  • docker system prune 只清理未使用资源
  • docker system prune -a 包括所有未使用镜像

常见错误

实战案例

docker system prune -a

多阶段构建(Multi-stage Build)

命令/示例

FROM node:16 AS build
WORKDIR /app
COPY . .
RUN npm install && npm run build

FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html

说明

多阶段构建可大幅减小最终镜像体积,提升安全性和效率。

适用场景

前端/后端项目构建、生产环境镜像优化。

常见用法

  • COPY --from=build ... 跨阶段拷贝

常见错误

  • 阶段命名拼写错误

实战案例

见上方示例


Docker Compose 基础命令

命令

docker-compose up -d
docker-compose down
docker-compose logs

说明

Compose 用于一键编排和管理多容器应用,适合开发和测试环境。

适用场景

本地开发、集成测试、微服务部署。

常见用法

  • docker-compose up 前台启动
  • docker-compose logs -f 跟踪日志

常见错误

  • yml文件格式错误

实战案例

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"

自定义网络

命令

docker network create mynet
docker run --network=mynet --name app1 busybox
docker run --network=mynet --name app2 busybox

说明

自定义网络让容器间可以通过名称互相访问,适合微服务架构。

适用场景

多容器通信、微服务部署。

常见用法

  • docker network ls 查看所有网络

常见错误

  • 网络名冲突

实战案例

见上方命令


数据卷类型

命令

# 匿名卷
docker run -v /data busybox

# 具名卷
docker volume create mydata
docker run -v mydata:/data busybox

# 绑定挂载
docker run -v /host/path:/container/path busybox

说明

数据卷用于持久化和共享数据,推荐使用具名卷管理。

适用场景

数据持久化、主机与容器数据共享。

常见用法

  • docker volume ls 查看所有卷

常见错误

  • 路径权限不足

实战案例

见上方命令


健康检查

命令/示例

HEALTHCHECK --interval=30s --timeout=10s \
  CMD curl -f http://localhost/ || exit 1

说明

为容器添加健康检查,便于自动化运维和故障自愈。

适用场景

生产环境服务监控。

常见用法

  • HEALTHCHECK NONE 关闭健康检查

常见错误

  • 检查命令返回值错误

实战案例

见上方示例


容器资源限制

命令

docker run --memory=512m --cpus=1 nginx

说明

限制容器最大内存和CPU,防止资源被单个容器占满。

适用场景

多容器部署、资源有限场景。

常见用法

  • --memory=1g 限制内存
  • --cpus=2 限制CPU核数

常见错误

  • 参数拼写错误

实战案例

docker run --memory=256m --cpus=0.5 nginx

自动重启策略

命令

docker run --restart=always nginx
docker run --restart=on-failure:3 nginx

说明

设置容器异常退出后的自动重启策略,提升服务可用性。

适用场景

生产环境、关键服务容器。

常见用法

  • --restart=unless-stopped 仅非手动停止时重启

常见错误

  • 策略拼写错误

实战案例

见上方命令


镜像构建缓存优化

技巧

  • 将不常变动的指令(如依赖安装)放在 Dockerfile 前面,减少重建时的缓存失效。
  • 合理拆分 RUN 指令,减少镜像层数。

说明

合理利用缓存可加快构建速度,减少资源消耗。

适用场景

频繁构建、CI/CD流水线。

常见用法

  • 多阶段构建配合缓存

常见错误

  • 缓存未命中导致构建变慢

实战案例

见上方技巧


多平台构建

命令

docker buildx build --platform linux/amd64,linux/arm64 -t myimage:latest .

说明

支持同时构建多种架构的镜像,适合跨平台部署。

适用场景

需要同时支持x86和ARM架构的项目。

常见用法

  • --platform 指定目标平台

常见错误

  • 构建器未初始化

实战案例

见上方命令

相关推荐

Docker集群管理之Docker Compose

前言:在上一篇《Docker集群管理之DockerMachine》中,我们通过源码分析了解了DockerMachine的工作原理,使用者可以通过DockerMachine的一条命令在任意支持的平...

使用Dockerfile build镜像

Docker映像可以看作是Docker容器的压缩包,包含了应用程序以及运行应用程序所需的依赖,容器是映像的运行时实例。一般构建镜像都是使用dockerfile进行构建而不是dockercommit,...

自建私有云相册:Docker一键部署Immich,照片视频备份利器

自建私有云相册:Docker一键部署Immich,照片视频备份利器前言随着人们手机、PC、平板等电子产品多样,我们拍摄和保存的照片和视频数量也在不断增加。如何高效地管理和备份这些珍贵的记忆成为了一个重...

docker容器的使用以及部署mysql

首先什么是docker官方:翻译:Docker是一个用于开发、发布和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分离,以便您可以快速交付软件。使用Docker,您可以像管理应...

自建Docker镜像加速服务,免费且简单,服务器VPS、NAS皆可用
自建Docker镜像加速服务,免费且简单,服务器VPS、NAS皆可用

写在前面:流程十分简单,有手就行,还请耐心看完。本文的实例仅做演示用,不久后将会删除,有需要的各位请自行搭建。免费实例如果15分钟内未收到入站流量,Render会关闭实例的网络服务。Render会在下次收到处理请求时重新启动该服务。Ren...

2025-05-24 15:40 mhr18

用了8年的方式-用 Docker 瞬间搭建本地开发环境

有些时候我们需要在本地搭开发环境,比如平时学习新技术的时候。或者有时候公司的项目需要在本地建一套类似的,方便调试修改。开发环境可能包括MySQL、Redis、Nginx、MQ、Elasticsea...

使用dockerfile构建docker镜像

准备工作购买vps使用ssh工具连接上1、更新系统aptupdate-y2、一键安装Dockercurl-fsSLhttps://get.docker.com-oget-docker.sh...

快速搭建 SpringCloud 微服务开发环境的脚手架

本文适合有SpringBoot和SpringCloud基础知识的人群,跟着本文可使用和快速搭建SpringCloud项目。本文作者:HelloGitHub-秦人HelloGitHub推出...

Docker Hub最全详解(图文全面总结)

DockerHubDockerHub是一个由Docker公司负责维护的公共注册中心,它包含了超过15000多个可用来下载和构建容器的Docker镜像。DockerHub作用Docker好比一个代...

Docker 命令详解

dockerimages—查看本地镜像命令dockerimages说明列出本地已下载的所有镜像及其标签、ID、大小等信息。适用场景查看本地镜像资源、准备删除或管理镜像时。常见用法docker...

Kylin安装Dify

cd/mntgitclonehttps://github.com/langgenius/dify.gitcp/mnt/dify/docker/.env.example/mnt/dif...

kali下对Docker的详细安装

Docker是渗透测试中必学不可的一个容器工具,在其中,我们能够快速创建、运行、测试以及部署应用程序。如,我们对一些漏洞进行本地复现时,可以使用Docker快速搭建漏洞环境,完成复现学习。注:本教程仅...

银河麒麟V10使用Docker方式部署应用

现在越来越多的企业级应用需要运行在国产化环境中,而银河麒麟V10是目前我碰到的最常用的服务器,在银河麒麟上部署应用有两种方式:使用二进制文件编译部署和使用Docker。关于使用二进制文件的方式...

Docker入门到精通超详细教程,Docker全家桶实战攻略

大家好,我是各位双生的武魂、随身老爷爷。从看到这篇内容开始,你就是被选定的天命骚年,将承担起学完docker教程的使命,本使命为单向契约,你可选择YES或者选择YES。正式学习之前,我先给大家做一下d...

【Docker 新手入门指南】第一章:前言

一、基本介绍Docker介绍Docker是基于Go语言开发的开源容器化平台,旨在实现“一次镜像,处处运行”。它通过将应用程序及其依赖环境(代码、运行时、系统工具、系统库等)打包成一个轻量级、可移...

取消回复欢迎 发表评论: