Docker常用命令详解

摘要

授之以鱼,不如授之以渔。

作为一个后端开发/运维工程师,我们会遇到安装形如MySQL、Redis、MongoDB、Rocket等开发环境的工作内容,Docker容器化是一个方便、高效的实现方式,网络中充斥着形形色色的教程文章,如:Docker安装MySQL类似内容,但是很多文章只是告诉你根据它的命令执行,会安装成功指定的环境,本身并不会告诉你为什么执行这个命令、这个命令有什么意义,由于版本更新、用户误操作等因素导致踩坑,占用宝贵的开发、学习时间,避免大家因为以上问题导致的浪费无意义时间,这是我写这篇文章的意义。

本文介绍了Docker常用命令的使用,包括容器管理和数据卷的操作。通过深入理解这些命令,您可以更好地管理和使用Docker容器,实现数据持久化、容器交互和数据共享等功能。本文将对每个命令进行详细说明,并给出示例以及使用建议,为您提供一个全面的Docker命令使用手册。


1. 创建和管理容器

1.1 创建容器

docker run <image_name>
  • 示例:
docker run ubuntu
  • 使用建议:
    • 为所需镜像名称,可以是官方仓库的公共镜像或自定义的镜像。
    • 可以添加适当的参数来配置容器,如-d后台运行、-p指定端口映射等。

1.2 列出正在运行的容器

docker ps
  • 使用建议:
    • docker ps -a 列出所有容器(包括停止的)。

1.3 启动、停止和重启容器

docker start <container_id/name>
docker stop <container_id/name>
docker restart <container_id/name>
  • 示例:
docker start my_container
docker stop my_container
docker restart my_container
  • 使用建议:
    • 可以是容器的ID或名称。

1.4 进入容器

docker exec -it <container_id/name> <command>
  • docker exec:运行一个命令在指定容器中。
  • -it:表示交互式操作,可以让用户在容器内进行命令行交互。
  • my_container:指定容器名称或 ID。
  • /bin/bash:命令参数,表示要在容器中运行的命令。
  • 示例:
docker exec -it my_container /bin/bash
  • 使用建议:
    • 可以是容器中的任何命令,例如bash、sh等。

2.日志查询

2.1查看指定容器的日志

  1. docker logs :查看指定容器的日志信息。可以通过容器名称或者容器 ID 来获取需要查询的容器。

2.2以流的方式查看日志

  1. docker logs -f :以实时流式方式查看容器的日志信息,类似于 tail -f 命令。
  2. docker logs --tail= :查看容器最近的 number 条日志。
  3. docker logs --since=“” :查看自指定时间点以来容器的所有日志信息。时间戳格式为:“yyyy-mm-ddThh:mm:ss” 或者 “yyyy-mm-dd”.
  4. docker logs --until=“” :查看自指定时间点之前的容器所有日志信息。
  5. docker-compose logs :查看指定服务(service)的所有容器日志信息。特别是在使用 Docker Compose 部署服务时,这是一个非常有用的命令。

2.3以过滤的方式查询日志

docker logs  -f --tail N  <container_name | container_id> | grep "search"
    • N:查询日志的行数
    • :容器名称或容器id
    • search:待查询的关键字
  • 示例
docker logs  -f --tail 10  42370f2552f4 | grep "2023"

3. 数据卷管理

3.1 创建数据卷

docker volume create <volume_name>
  • 示例:
docker volume create my_volume

3.2 列出所有数据卷

docker volume ls
  • 示例:
docker volume ls

3.3 查看数据卷详细信息

docker volume inspect <volume_name>
  • 示例:
docker volume inspect my_volume

3.4 删除数据卷

docker volume rm <volume_name>
  • 示例:
docker volume rm my_volume

4. 容器与数据卷的交互

4.1 在容器中使用数据卷

docker run -v <volume_name>:<container_path> <image_name>
  • 示例:
docker run -v my_volume:/app/data my_image
  • 使用建议:
    • 将宿主机中的 /opt/apps 目录挂载到容器中的 /app 目录,使得容器内的应用程序可以访问宿主机中的文件。以做到在宿主机中方便修改容器配置的能力。

4.2 挂载宿主机目录到容器

docker run -v <host_path>:<container_path> <image_name>
  • 示例:
docker run -v /host/data:/app/data my_image

本文内容持续更新中…

参考链接:

  • Docker官方文档:https://docs.docker.com/
  • Docker数据卷文档:https://docs.docker.com/storage/volumes/

(注意:本文仅限于Docker常用命令的使用,具体操作可能因版本差异而有所不同,请根据实际情况进行调整和验证。)

写在最后

感谢您读到这里,如果觉得文章写的还不错或有任何疑问,可以添加我微信,我随时为您解答。

Docker常用命令详解_第1张图片

你可能感兴趣的:(笔记,docker,容器,运维)