Docker 命令详解:容器、镜像、网络和数据卷管理

文章目录

      • [1. `docker run`](#1. docker run)
      • [2. `docker pull`](#2. docker pull)
      • [3. `docker images`](#3. docker images)
      • [4. `docker ps`](#4. docker ps)
      • [5. `docker stop`](#5. docker stop)
      • [6. `docker rm`](#6. docker rm)
      • [7. `docker commit`](#7. docker commit)
      • [8. `docker exec`](#8. docker exec)
      • [9. `docker logs`](#9. docker logs)
      • [10. `docker network`](#10. docker network)
      • [11. `docker volume`](#11. docker volume)
      • [12. `docker save`](#12. docker save)
      • [13. `docker load`](#13. docker load)
      • [14. `docker tag`](#14. docker tag)
      • [15. `docker search`](#15. docker search)
      • [16. `docker diff`](#16. docker diff)
      • [17. `docker cp`](#17. docker cp)
      • [18. `docker pause`](#18. docker pause)
      • [19. `docker unpause`](#19. docker unpause)
      • [20. `docker attach`](#20. docker attach)
      • [21. `docker stats`](#21. docker stats)
      • [22. `docker wait`](#22. docker wait)
      • [23. `docker rmi`](#23. docker rmi)
      • [24. `docker build`](#24. docker build)

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
以下是一些常用的 Docker 命令及其用法和场景:

1. docker run

命令: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
用法: 启动一个新容器。
场景: 当你想要从一个镜像创建一个新容器并运行一个命令时使用。
示例:

  • 启动一个名为 my_containerubuntu 镜像容器并执行 echo "Hello, Docker!" 命令:

    复制代码
    docker run -name my_container -it ubuntu echo "Hello, Docker!"

2. docker pull

命令: docker pull [OPTIONS] NAME[:TAG|@digest]
用法: 从仓库拉取或者更新指定的镜像。
场景: 当你需要下载一个镜像到本地仓库时使用。
示例:

  • 从 Docker Hub 拉取最新的 ubuntu 镜像:

    复制代码
    docker pull ubuntu

3. docker images

命令: docker images [OPTIONS]
用法: 列出本地存储的镜像。
场景: 当你需要查看本地所有镜像列表时使用。
示例:

  • 查看本地所有镜像:

    复制代码
    docker images

4. docker ps

命令: docker ps [OPTIONS]
用法: 列出当前运行的容器。
场景: 当你需要查看当前运行的容器列表时使用。
示例:

  • 查看所有运行中的容器:

    复制代码
    docker ps

5. docker stop

命令: docker stop [OPTIONS] NAME|ID
用法: 停止一个运行中的容器。
场景: 当你需要停止一个不再需要的运行中的容器时使用。
示例:

  • 停止名为 my_container 的容器:

    复制代码
    docker stop my_container

6. docker rm

命令: docker rm [OPTIONS] NAME|ID
用法: 删除一个或多个容器。
场景: 当你需要删除一个不再需要的容器时使用。
示例:

  • 删除名为 my_container 的容器:

    复制代码
    docker rm my_container

7. docker commit

命令: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
用法: 将容器的当前状态作为一个新的镜像保存。
场景: 当你对一个运行中的容器做了修改,并希望保存这些修改作为一个新的镜像时使用。
示例:

  • 将名为 my_container 的容器提交为一个新镜像,命名为 new_image

    复制代码
    docker commit my_container new_image

8. docker exec

命令: docker exec [OPTIONS] NAME|ID COMMAND [ARG...]
用法: 在运行的容器中执行命令。
场景: 当你需要在运行中的容器中执行命令时使用。
示例:

  • 在名为 my_container 的容器中执行 ls 命令:

    复制代码
    docker exec my_container ls

9. docker logs

命令: docker logs [OPTIONS] NAME|ID
用法: 获取容器的日志输出。
场景: 当你需要查看或跟踪容器的输出时使用。
示例:

  • 查看名为 my_container 的容器的日志输出:

    复制代码
    docker logs my_container

10. docker network

命令: docker network [OPTIONS] COMMAND
用法: 管理 Docker 的网络设置。
场景: 当你需要创建或管理容器的网络连接时使用。
示例:

  • 创建一个名为 my_network 的网络:

    复制代码
    docker network create my_network

11. docker volume

命令: docker volume [OPTIONS] COMMAND
用法: 管理 Docker 的数据卷。
场景: 当你需要持久化或共享容器数据时使用。
示例:

  • 创建一个数据卷:

    复制代码
    docker volume create my_volume
  • 查看所有数据卷:

    复制代码
    docker volume ls
  • 查看指定数据卷的信息:

    复制代码
    docker volume inspect my_volume
  • 删除一个数据卷:

    复制代码
    docker volume rm my_volume
  • 挂载一个数据卷到容器:

    复制代码
    docker run -d --name my_container -v my_volume:/path/to/mounted_volume my_image
  • 挂载一个本地目录到容器:

    复制代码
    docker run -d --name my_container -v /local/path:/path/to/mounted_volume my_image
  • 挂载一个只读卷:

    复制代码
    docker run -d --name my_container -v my_volume:/path/to/mounted_volume:ro my_image
  • 挂载多个卷:

    复制代码
    docker run -d --name my_container -v my_volume:/path/to/mounted_volume -v another_volume:/path/to/another_mounted_volume my_image

说明:

  • create: 创建一个新的数据卷。
  • ls: 列出所有本地数据卷。
  • inspect: 显示关于一个或多个数据卷的信息。
  • rm: 删除一个或多个数据卷。
  • mount: 挂载一个数据卷或本地目录到容器中。
    在挂载数据卷时,你可以使用本地目录,也可以挂载现有的数据卷。挂载时指定的路径在容器内部可见,并且可以作为容器内的文件系统路径使用。还可以通过 :ro 选项将卷挂载为只读,或者使用 :Z 选项(在 Linux 上)来设置卷的权限。
    数据卷是 Docker 中非常重要的一个功能,它使得数据的持久化和共享变得简单,并且可以跨容器的使用数据卷,这在多个容器之间共享数据时非常有用。

12. docker save

命令: docker save [OPTIONS] NAME|ID
用法: 将一个或多个镜像保存到本地文件。
场景: 当你需要备份或传输镜像时使用。
示例:

  • 将名为 my_image 的镜像保存到当前目录下的 my_image.tar 文件:

    复制代码
    docker save my_image > my_image.tar

13. docker load

命令: docker load [OPTIONS] file
用法: 从本地文件加载一个镜像。
场景: 当你需要从备份或传输的文件中恢复镜像时使用。
示例:

  • 从当前目录下的 my_image.tar 文件加载镜像:

    复制代码
    docker load < my_image.tar

14. docker tag

命令: docker tag [OPTIONS] IMAGE[:TAG|@digest] REPOSITORY[:TAG]
用法: 标记一个镜像以便于引用。
场景: 当你需要给镜像打上标签以便于管理时使用。
示例:

  • 将名为 my_image 的镜像标记为 REPOSITORY/my_image:latest

    复制代码
    docker tag my_image REPOSITORY/my_image:latest

命令: docker search [OPTIONS] QUERY
用法: 在 Docker Hub 上搜索镜像。
场景: 当你需要查找可在 Docker Hub 上使用的镜像时使用。
示例:

  • 在 Docker Hub 上搜索 ubuntu 镜像:

    复制代码
    docker search ubuntu

以上就是 Docker 的一些常用命令及其用法和场景。掌握这些命令,你可以更好地使用 Docker 来进行开发、测试和部署你的应用程序。

16. docker diff

命令: docker diff [OPTIONS] CONTAINER
用法: 显示容器的更改信息。
场景: 当你需要查看容器自上次启动以来有何更改时使用。
示例:

  • 查看名为 my_container 的容器的更改:

    复制代码
    docker diff my_container

17. docker cp

命令: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
用法: 在容器之间或容器与宿主机之间复制文件或目录。
场景: 当你需要在容器之间,或容器与宿主机之间传输文件时使用。
示例:

  • 从名为 my_container 的容器中复制 /app/data 文件到宿主机的 /home/user/ 目录:

    复制代码
    docker cp my_container:/app/data /home/user/

18. docker pause

命令: docker pause [OPTIONS] NAME|ID
用法: 暂停一个或多个正在运行的容器。
场景: 当你需要临时停止一个或多个容器时使用。
示例:

  • 暂停名为 my_container 的容器:

    复制代码
    docker pause my_container

19. docker unpause

命令: docker unpause [OPTIONS] NAME|ID
用法: 恢复一个或多个被暂停的容器。
场景: 当你需要恢复一个或多个被暂停的容器时使用。
示例:

  • 恢复名为 my_container 的容器:

    复制代码
    docker unpause my_container

20. docker attach

命令: docker attach [OPTIONS] NAME|ID
用法: 连接到正在运行的容器的标准输入。
场景: 当你需要与正在运行的容器交互时使用。
示例:

  • 连接到名为 my_container 的运行中的容器:

    复制代码
    docker attach my_container

21. docker stats

命令: docker stats [OPTIONS] NAME|ID
用法: 显示容器的资源使用情况。
场景: 当你需要监控容器的资源使用情况时使用。
示例:

  • 显示所有运行中的容器的资源使用情况:

    复制代码
    docker stats --all

22. docker wait

命令: docker wait [OPTIONS] NAME|ID
用法: 等待一个或多个容器停止。
场景: 当你需要在容器停止后进行其他操作时使用。
示例:

  • 等待名为 my_container 的容器停止:

    复制代码
    docker wait my_container

23. docker rmi

命令: docker rmi [OPTIONS] NAME|ID
用法: 删除一个或多个镜像。
场景: 当你需要删除一个或多个不再需要的镜像时使用。
示例:

  • 删除名为 my_image 的镜像:

    复制代码
    docker rmi my_image

24. docker build

命令: docker build [OPTIONS] PATH
用法: 使用 Dockerfile 构建镜像。
场景: 当你需要从 Dockerfile 构建一个镜像时使用。
示例:

  • 从当前目录下的 Dockerfile 构建镜像:

    复制代码
    docker build .
相关推荐
十年磨一剑~35 分钟前
centos查看开启关闭防火墙状态
linux·运维·centos
无效的名字1 小时前
向日葵远程控制debian无法进入控制画面的解决方法
运维·debian
藥瓿亭1 小时前
K8S认证|CKS题库+答案| 7. Dockerfile 检测
运维·ubuntu·docker·云原生·容器·kubernetes·cks
搬码临时工2 小时前
如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
运维·服务器·网络·tcp/ip·智能路由器·远程工作·访问公司内网
容器魔方2 小时前
KubeCon 抢鲜 | Kmesh与你共创高性能流量治理更优方案
云原生·容器·云计算
Guheyunyi2 小时前
监测预警系统重塑隧道安全新范式
大数据·运维·人工智能·科技·安全
杰哥技术分享3 小时前
在 CentOS 上安装 Docker 和 Docker Compose 并配置使用国内镜像源
linux·docker·centos
知更鸟呆呆3 小时前
【Linux操作系统】基础开发工具(yum、vim、gcc/g++)
linux·运维·vim
Gold Steps.3 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
m0_637146934 小时前
C语言基础面试问答
运维·服务器