当前位置: 首页 > news >正文

Docker常用命令操作指南(一)

Docker常用命令操作指南-1

    • 一、Docker镜像相关命令
      • 1.1 搜索镜像(docker search)
      • 1.2 拉取镜像(docker pull)
      • 1.3 查看本地镜像(docker images)
      • 1.4 删除镜像(docker rmi)
    • 二、Docker容器相关命令
      • 2.1 运行容器(docker run)
      • 2.2 查看容器(docker ps)
      • 2.3 停止与启动容器(docker stop/docker start)
      • 2.4 进入容器(docker exec/docker attach)
      • 2.5 删除容器(docker rm)
    • 三、Docker仓库相关命令
      • 3.1 登录与登出仓库(docker login/docker logout)
      • 3.2 推送镜像到仓库(docker push)
    • 四、Docker其他实用命令
      • 4.1 查看Docker系统信息(docker info)
      • 4.2 查看容器日志(docker logs)
    • 总结

在容器化技术飞速发展的今天,Docker已成为开发者和运维人员不可或缺的工具,而熟练掌握Docker的基础命令,是高效使用Docker进行应用开发、部署和管理的基石。本文我将围绕Docker镜像、容器、仓库等核心操作,并结合相关示例,带你深入了解Docker基础命令的使用方法与技巧。

一、Docker镜像相关命令

镜像作为Docker的核心概念之一,是创建容器的基础。常用的镜像操作命令如下:

1.1 搜索镜像(docker search)

当我们需要获取某个应用的镜像时,可以使用 docker search 命令在Docker Hub等镜像仓库中搜索镜像。命令格式如下:

docker search [OPTIONS] TERM

例如,搜索Nginx镜像:

docker search nginx

执行该命令后,会列出Nginx相关镜像的信息,包括镜像名称、描述、星级评分、官方与否等。其中常用选项 -s 可用于按星级评分筛选镜像,如 docker search -s 5 nginx 表示搜索评分5星及以上的Nginx镜像。

1.2 拉取镜像(docker pull)

找到合适的镜像后,使用 docker pull 命令将其下载到本地。命令格式为:

docker pull [OPTIONS] NAME[:TAG]

NAME 为镜像名称,TAG 是镜像的标签,用于标识镜像的版本,不指定 TAG 时默认拉取 latest 标签的镜像。例如,拉取最新版的Nginx镜像:

docker pull nginx

若要拉取特定版本,如Nginx 1.23.3版本:

docker pull nginx:1.23.3

1.3 查看本地镜像(docker images)

使用 docker images 命令可以查看本地已下载的镜像列表,命令格式:

docker images [OPTIONS] [REPOSITORY[:TAG]]

执行后会显示镜像的仓库名、标签、镜像ID、创建时间和大小等信息。例如,只查看Nginx相关镜像:

docker images nginx

常用选项 -q 可仅显示镜像ID,方便后续操作,如 docker images -q nginx

1.4 删除镜像(docker rmi)

当镜像不再需要时,可使用 docker rmi 命令删除。格式为:

docker rmi [OPTIONS] IMAGE [IMAGE...]

IMAGE 可以是镜像ID、镜像名:标签等。比如删除本地的Nginx镜像(通过镜像ID删除):

docker rmi <镜像ID>

若镜像被容器使用,直接删除会报错,可先停止并删除相关容器,或使用 -f 强制删除,如 docker rmi -f nginx

二、Docker容器相关命令

容器是镜像的运行实例,容器的常见操作命令如下:

2.1 运行容器(docker run)

docker run 是最常用的命令之一,用于创建并运行一个容器,格式如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

其中 OPTIONS 有很多实用参数:

  • -d:以后台守护进程模式运行容器;
  • -p:端口映射,格式为 宿主机端口:容器端口,如 docker run -d -p 8080:80 nginx 将宿主机8080端口映射到容器80端口;
  • -v:数据卷挂载,实现宿主机与容器间的数据共享,如 docker run -v /host/data:/container/data nginx
  • --name:为容器指定一个名称 ,方便后续管理,如 docker run --name my-nginx nginx

例如,以守护进程模式运行一个Nginx容器,并映射端口:

docker run -d -p 80:80 --name my-nginx nginx

2.2 查看容器(docker ps)

使用 docker ps 命令查看正在运行的容器,格式:

docker ps [OPTIONS]

常用选项:

  • -a:显示所有容器(包括已停止的);
  • -l:显示最近创建的容器;
  • -q:仅显示容器ID。

如查看所有容器:

docker ps -a

2.3 停止与启动容器(docker stop/docker start)

停止正在运行的容器使用 docker stop 命令,格式为 docker stop [OPTIONS] CONTAINER [CONTAINER...] ,例如停止名为 my-nginx 的容器:

docker stop my-nginx

启动已停止的容器用 docker start ,格式类似,如 docker start my-nginx 。此外,docker restart 命令可用于重启容器,相当于先停止再启动。

2.4 进入容器(docker exec/docker attach)

进入正在运行的容器有两种方式:

  • docker exec:在容器中执行一个新的命令,并进入交互模式,推荐使用。格式为 docker exec -it CONTAINER COMMAND ,如进入Nginx容器的Shell:
docker exec -it my-nginx bash
  • docker attach:直接进入容器的标准输入、输出和错误输出流,当多个窗口同时attach时会产生干扰,使用较少。

2.5 删除容器(docker rm)

删除已停止的容器使用 docker rm 命令,格式为 docker rm [OPTIONS] CONTAINER [CONTAINER...] ,如删除 my-nginx 容器:

docker rm my-nginx

若要删除正在运行的容器,可使用 -f 强制删除 ,即 docker rm -f my-nginx

三、Docker仓库相关命令

Docker仓库用于存储镜像,与仓库交互的常用命令如下:

3.1 登录与登出仓库(docker login/docker logout)

登录Docker Hub等仓库使用 docker login 命令,格式:

docker login [OPTIONS] [SERVER]

执行后按提示输入用户名和密码即可登录。登出使用 docker logout ,如 docker logout

3.2 推送镜像到仓库(docker push)

将本地镜像推送到仓库使用 docker push 命令,格式为 docker push NAME[:TAG] ,但需要先确保镜像名称符合仓库的命名规范(通常包含仓库地址、用户名等信息)。例如,将本地镜像推送到Docker Hub:

docker push username/repository:tag

四、Docker其他实用命令

4.1 查看Docker系统信息(docker info)

docker info 命令用于查看Docker系统的详细信息,包括磁盘使用、镜像数量、容器数量、存储驱动等。执行 docker info 即可查看相关内容。

4.2 查看容器日志(docker logs)

通过 docker logs 命令查看容器的运行日志,格式为 docker logs [OPTIONS] CONTAINER 。常用选项 -f 可实时跟踪日志输出,如查看Nginx容器日志:

docker logs -f my-nginx

总结

本文我简单介绍了Docker在镜像、容器、仓库等方面的基础命令,涵盖了从镜像获取、容器创建运行到仓库交互等基础核心操作。以后我还将深入介绍 Docker 常用的其他命令,敬请期待吧~

若这篇内容帮到你,动动手指支持下!关注不迷路,干货持续输出!
ヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノヾ(´∀ ˋ)ノ

相关文章:

  • 华为OD机试真题——求最多可以派出多少支队伍(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 【论文阅读】《PEACE: Empowering Geologic Map Holistic Understanding with MLLMs》
  • stm32cube ide如何将工具链替换成arm-none-eabi-gcc
  • stm32cube ide如何生成LL库工程
  • C++23 std::fstreams基础回顾
  • 基于本地化大模型的智能编程助手全栈实践:从模型部署到IDE深度集成学习心得
  • echarts双柱状图支持点击并高亮当前点击柱子
  • 【大模型】Bert变种
  • 序列化与反序列化
  • GitHub 趋势日报 (2025年05月28日)
  • DeepSeekMath:突破开放式语言模型中数学推理能力的极限
  • 基于 GitLab CI + Inno Setup 实现 Windows 程序自动化打包发布方案
  • 【unity游戏开发——编辑器扩展】EditorApplication公共类处理编辑器生命周期事件、播放模式控制以及各种编辑器状态查询
  • 【Linux网络编程】传输层协议TCP,UDP
  • 记录一个难崩的bug
  • 从零开始的云计算生活——第十四天,困难重重,安全管理。
  • 社群分享:义乌|杭州电商|店群卖家,私域鱼塘运营的排单系统开源|私域鱼塘运营|返款软件开源
  • Azure Devops pipeline 技巧和最佳实践
  • 新版LangChain向量数据库VectorStore设计详解
  • 关于智能体接入后端,在Apifox能够传参数给智能体的测试
  • 推广软件排行榜前十名/搜索引擎优化的目标
  • 长沙做模板网站/营销页面
  • cpa广告联盟网站建设/广州seo关键词
  • 青岛手机端网络推广培训/网站优化排名软件哪些最好
  • 石龙网站建设/无锡网站建设
  • 有没有做机械加工的网站/搜索排名广告营销