前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker常用命令详解

Docker常用命令详解

作者头像
关忆北.
发布2023-10-19 14:09:56
2750
发布2023-10-19 14:09:56
举报
文章被收录于专栏:关忆北.

🦈 摘要

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

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

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


🐳 1. 创建和管理容器

1.1 创建容器
代码语言:javascript
复制
docker run <image_name>
  • 示例:
代码语言:javascript
复制
docker run ubuntu
  • 使用建议:
    • <image_name>为所需镜像名称,可以是官方仓库的公共镜像或自定义的镜像。
    • 可以添加适当的参数来配置容器,如-d后台运行、-p指定端口映射等。
1.2 列出正在运行的容器
代码语言:javascript
复制
docker ps
  • 使用建议:
    • docker ps -a 列出所有容器(包括停止的)。
1.3 启动、停止和重启容器
代码语言:javascript
复制
docker start <container_id/name>
docker stop <container_id/name>
docker restart <container_id/name>
  • 示例:
代码语言:javascript
复制
docker start my_container
docker stop my_container
docker restart my_container
  • 使用建议:
    • <container_id/name>可以是容器的ID或名称。
1.4 进入容器
代码语言:javascript
复制
docker exec -it <container_id/name> <command>
  • docker exec:运行一个命令在指定容器中。
  • -it:表示交互式操作,可以让用户在容器内进行命令行交互。
  • my_container:指定容器名称或 ID。
  • /bin/bash:命令参数,表示要在容器中运行的命令。
  • 示例:
代码语言:javascript
复制
docker exec -it my_container /bin/bash
  • 使用建议:
    • 可以是容器中的任何命令,例如bash、sh等。

🐬 2.日志查询

2.1查看指定容器的日志
  1. docker logs <container_name | container_id>:查看指定容器的日志信息。可以通过容器名称或者容器 ID 来获取需要查询的容器。
2.2以流的方式查看日志
  1. docker logs -f <container_name | container_id>:以实时流式方式查看容器的日志信息,类似于 tail -f 命令。
  2. docker logs --tail= <container_name | container_id>:查看容器最近的 number 条日志。
  3. docker logs --since=“” <container_name | container_id>:查看自指定时间点以来容器的所有日志信息。时间戳格式为:“yyyy-mm-ddThh:mm:ss” 或者 “yyyy-mm-dd”.
  4. docker logs --until=“” <container_name | container_id>:查看自指定时间点之前的容器所有日志信息。
  5. docker-compose logs <service_name>:查看指定服务(service)的所有容器日志信息。特别是在使用 Docker Compose 部署服务时,这是一个非常有用的命令。
2.3以过滤的方式查询日志
代码语言:javascript
复制
docker logs  -f --tail N  <container_name | container_id> | grep "search"
    • N:查询日志的行数
    • <container_name | container_id>:容器名称或容器id
    • search:待查询的关键字
  • 示例
代码语言:javascript
复制
docker logs  -f --tail 10  42370f2552f4 | grep "2023"

🦭 3. 数据卷管理

3.1 创建数据卷
代码语言:javascript
复制
docker volume create <volume_name>
  • 示例:
代码语言:javascript
复制
docker volume create my_volume
3.2 列出所有数据卷
代码语言:javascript
复制
docker volume ls
  • 示例:
代码语言:javascript
复制
docker volume ls
3.3 查看数据卷详细信息
代码语言:javascript
复制
docker volume inspect <volume_name>
  • 示例:
代码语言:javascript
复制
docker volume inspect my_volume
3.4 删除数据卷
代码语言:javascript
复制
docker volume rm <volume_name>
  • 示例:
代码语言:javascript
复制
docker volume rm my_volume

🐋 4. 容器与数据卷的交互

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

本文内容持续更新中…

参考链接:

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🦈 摘要
  • 🐳 1. 创建和管理容器
    • 1.1 创建容器
      • 1.2 列出正在运行的容器
        • 1.3 启动、停止和重启容器
          • 1.4 进入容器
          • 🐬 2.日志查询
            • 2.1查看指定容器的日志
              • 2.2以流的方式查看日志
                • 2.3以过滤的方式查询日志
                • 🦭 3. 数据卷管理
                  • 3.1 创建数据卷
                    • 3.2 列出所有数据卷
                      • 3.3 查看数据卷详细信息
                        • 3.4 删除数据卷
                        • 🐋 4. 容器与数据卷的交互
                          • 4.1 在容器中使用数据卷
                            • 4.2 挂载宿主机目录到容器
                            • 本文内容持续更新中…
                            相关产品与服务
                            容器镜像服务
                            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档