Docker介绍与最实用最常见指令

 更新时间:2026年01月27日 09:52:42   作者:Anastasiozzzz  
Docker 是目前最流行的容器化技术之一,它通过轻量级的虚拟化方式,帮助开发者快速构建、部署和运行应用程序,本文介绍了Docker的常见和实用指令,包括镜像、容器、网络和数据卷的管理,感兴趣的朋友跟随小编一起看看吧

大家好,这里是程序员阿亮,今天做项目的时候对着宝塔终端搞了一下午,使用到docker的时候,发现很多docker指令有点忘记了....所以今天讲一下docker吧!

前言

Docker 是目前最流行的容器化技术之一,它通过轻量级的虚拟化方式,帮助开发者快速构建、部署和运行应用程序。无论你是刚接触 Docker 的新手,还是希望系统梳理常用命令的老手,本文将为你详细介绍 Docker 中最常见、最实用的指令,助你高效使用 Docker。

一、镜像(Image)相关命令

1.docker pull:从仓库拉取镜像

作用:下载指定镜像到本地

语法:

docker pull <image_name>:<tag>

示例:

# 拉取最新版 Nginx 镜像
docker pull nginx:latest
# 拉取指定版本的 Redis(如 7.0)
docker pull redis:7.0
# 不加tag默认lastest

2.docker images:列出本地所有镜像

作用:查看已下载的镜像列表。
示例

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    605c77e624dd   2 weeks ago    141MB
redis        7.0       7614ae9a5f8b   3 months ago   117MB

3.docker rmi:删除本地镜像

作用:移除不再需要的镜像。
示例

# 删除 Redis 7.0 镜像(通过名称)
docker rmi redis:7.0
# 强制删除(即使被容器引用)
docker rmi -f 605c77e624dd
# 注意:若镜像正被容器使用,需先删除容器或加 -f 强制删除。

4.docker build:基于 Dockerfile 构建镜像

作用:从源码构建自定义镜像。
示例
假设当前目录下有 Dockerfile

FROM alpine
RUN echo "Hello from custom image!" > /hello.txt
CMD cat /hello.txt

执行构建:

# 构建并打标签为 my-hello:v1
docker build -t my-hello:v1 .

构建成功:

docker run my-hello:v1
# 输出:Hello from custom image!

二、容器(Container)相关命令

1.docker run:创建并启动容器

作用:从镜像运行一个新容器。
常用选项说明

  • -d:后台运行
  • -p:端口映射(宿主机:容器)
  • --name:指定容器名
  • -v:挂载数据卷
  • -e:设置环境变量
  • --rm:退出后自动删除

示例

# 启动一个名为 web 的 Nginx 容器,映射 8080 端口
docker run -d --name web -p 8080:80 nginx
# 启动 Redis 并设置密码,退出后自动清理
docker run --rm --name myredis -e REDIS_PASSWORD=123456 redis:7.0 redis-server --requirepass 123456

2.docker ps:查看运行中的容器

作用:列出当前正在运行的容器。
示例

$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS       PORTS                  NAMES
a1b2c3d4e5f6   nginx     "/docker-entrypoint.…"   2 minutes ago   Up 2 mins    0.0.0.0:8080->80/tcp   web

如果要查看已经关闭的容器:

docker ps -a

3.docker stop/start/restart:控制容器生命周期

示例

# 停止名为 web 的容器
docker stop web
# 再次启动
docker start web
# 重启(常用于配置更新后)
docker restart web

4.docker exec:进入运行中的容器执行命令

作用:在容器内执行交互式命令(如调试)。
示例

# 进入 Nginx 容器的 shell
docker exec -it web /bin/bash
# 在容器内直接执行单条命令(不进入交互)
docker exec web cat /etc/nginx/nginx.conf
# -it 表示分配伪终端并保持 STDIN 打开。

5.docker logs:查看容器日志

作用:排查应用输出或错误信息。
示例

# 查看 Nginx 访问日志
docker logs web
# 实时跟踪日志(类似 tail -f)
docker logs -f web

6.docker rm:删除容器

作用:清理不再需要的容器。
示例

# 删除已停止的容器
docker rm web
# 强制删除正在运行的容器(先 stop 再 rm)
docker rm -f web
# 删除所有已停止的容器
docker container prune

三、网络(Network)相关命令

1.docker network ls:列出所有网络

示例

$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
abc123def456   bridge    bridge    local
xyz789uvw012   host      host      local
...

默认有 bridgehostnone 三种网络。

2.docker network create:创建自定义网络

作用:让多个容器在同一网络下通过服务名通信。
示例

# 创建名为 mynet 的桥接网络
docker network create mynet

3.docker run --network:将容器加入指定网络

示例

# 启动两个容器到同一网络
docker run -d --name app1 --network=mynet alpine sleep 3600
docker run -d --name app2 --network=mynet alpine sleep 3600
# 在 app1 中 ping app2(验证连通性)
docker exec app1 ping -c 2 app2

容器间可通过容器名直接解析 IP,无需记 IP 地址。

四、数据卷(Volume)相关命令

1.docker volume create:创建命名卷

作用:持久化容器数据(如数据库文件)。
示例

# 创建名为 mysql_data 的卷
docker volume create mysql_data

2.docker volume ls:列出所有卷

示例

$ docker volume ls
DRIVER    VOLUME NAME
local     mysql_data

3.docker run -v:挂载卷到容器

示例

# 将 mysql_data 卷挂载到 MySQL 容器的 /var/lib/mysql
docker run -d \
  --name mysql-db \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v mysql_data:/var/lib/mysql \
  mysql:8.0
# 即使容器删除,数据仍保留在卷中。

4.docker volume inspect:查看卷详情

示例

$ docker volume inspect mysql_data
[
    {
        "CreatedAt": "2026-01-25T10:00:00Z",
        "Driver": "local",
        "Mountpoint": "/var/lib/docker/volumes/mysql_data/_data",
        "Name": "mysql_data",
        ...
    }
]

5.docker volume prune:清理未使用的卷

示例

# 删除所有未被容器引用的卷(谨慎操作!)
docker volume prune

五、系统与清理命令

1.docker info:查看 Docker 系统信息

示例

docker info
# 输出包括:容器数量、镜像数量、存储驱动、CPU/内存等

2.docker stats:实时监控容器资源使用

示例

$ docker stats
CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O
a1b2c3d4e5f6   web       0.10%     2.5MiB / 15.6GiB      0.02%     1.2kB / 0B    0B / 0B

按q退出

3.docker system prune:一键清理无用资源

作用:删除所有停止的容器、未被引用的网络、构建缓存等。
示例

# 清理常规无用资源
docker system prune
# 彻底清理(包括未被任何容器使用的镜像)
docker system prune -a

总结

以上命令覆盖了 Docker 日常使用的 90% 场景。建议你在本地环境动手实践每一个示例——比如先跑一个 Nginx,再连接 Redis,最后用自定义网络让它们通信。只有通过实际操作,才能真正掌握容器化开发的精髓。

到此这篇关于Docker介绍与最实用最常见指令的文章就介绍到这了,更多相关Docker常见指令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker pull命令拉取镜像失败的解决方案

    docker pull命令拉取镜像失败的解决方案

    本文介绍了docker pull命令拉取镜像失败的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • docker Network(网络)详解

    docker Network(网络)详解

    这篇文章主要介绍了docker Network(网络),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

    Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

    这篇文章主要介绍了Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Docker保存镜像和导入镜像文件完整图文教程

    Docker保存镜像和导入镜像文件完整图文教程

    这篇文章主要给大家介绍了关于Docker保存镜像和导入镜像文件的完整图文教程,适用于备份、迁移和版本控制等场景,文中通过代码及图文介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • docker如何动态查看日志最后100行

    docker如何动态查看日志最后100行

    这篇文章主要介绍了docker如何动态查看日志最后100行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-01-01
  • Docker安装Nacos容器并根据Nginx实现负载均衡

    Docker安装Nacos容器并根据Nginx实现负载均衡

    本文主要介绍了Docker安装Nacos容器并根据Nginx实现负载均衡,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • 解决calico-apiserver认证失败问题

    解决calico-apiserver认证失败问题

    文章解决Calico APIServer状态异常和命名空间删除报错问题,指出需在三台Master节点修改kube-apiserver的--requestheader-allowed-names参数,允许aggregator CN,此参数控制聚合层代理连接的客户端证书CN白名单
    2025-09-09
  • docker compose运行微服务项目的方法

    docker compose运行微服务项目的方法

    这篇文章主要介绍了docker compose运行微服务项目 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • CentOS 7.x docker使用overlay2存储方式

    CentOS 7.x docker使用overlay2存储方式

    这篇文章主要介绍了CentOS 7.x docker使用overlay2存储方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker使用的个人学习总结

    Docker使用的个人学习总结

    最近时不时会用到很多开发工具,无奈装了太多无用软件,所以不想安装太多开发软件在电脑上,所以想到了用docker容器来配置开发环境适应不同开发内容,这篇文章主要给大家总结了关于Docker使用的一些个人学习知识点,需要的朋友们下面来一起看看吧。
    2017-06-06

最新评论