点击上方网络技术干货圈,选择设为星标
优质文章,及时送达
在当今数字化时代,容器技术已成为推动软件开发与部署变革的关键力量,而 Docker 作为其中的佼佼者,凭借其轻量级、高效、便捷的特性,深受广大开发人员和运维工程师的青睐。掌握 Docker 命令,就如同握住了开启容器化世界大门的钥匙。本文精心整理了 34 个 Docker 命令,并对其进行了深入剖析,旨在助力读者全方位、系统化地掌握 Docker 的核心操作,无论是初学者还是资深从业者,都能在这份宝典中找到所需的知识,提升对 Docker 的驾驭能力,高效地构建、管理与优化容器化应用。
一、Docker 基础命令
系统信息与版本查看
docker version
查看 Docker 的版本信息,包括客户端和服务器端的版本号、编译时间等。
在安装 Docker 后,首次使用前,通过该命令确认安装的 Docker 版本是否符合项目要求;当遇到兼容性问题时,查看版本信息以便排查故障。
docker info
显示 Docker 系统的详细信息,涵盖宿主机的 CPU、内存等硬件资源情况,以及 Docker 镜像、容器、网络、存储等方面的配置和状态。
docker info
,输出内容示例(部分):
系统管理员定期检查 Docker 系统状态,确保资源充足、配置合理;开发人员在排查容器运行异常时,借助该命令了解系统环境细节。
镜像操作基础
docker images
列出本地已有的 Docker 镜像,包括镜像的仓库名、标签、镜像 ID、创建时间以及大小等信息。
docker images
,输出内容示例:
查看本地可用镜像,以便快速定位所需镜像进行容器创建;清理无用镜像前,先通过该命令查看镜像列表。
docker pull
从 Docker 仓库(默认为 Docker Hub)拉取指定的镜像到本地。
示例: docker pull nginx:1.18
,从 Docker Hub 拉取标签为 1.18 的 Nginx 镜像。
开发新项目时,需要使用特定版本的软件镜像,通过该命令获取;团队成员共享镜像资源,从私有仓库拉取镜像。
docker push
将本地镜像推送到 Docker 仓库,分享给其他用户或团队成员使用。
示例:
docker push myusername/myimage:1.0
,将本地标签为 1.0 的 myimage 镜像推送到 Docker Hub 上的 myusername 仓库。应用场景:项目完成后,将自定义镜像上传至公共仓库供他人下载使用;团队协作中,将更新后的镜像推送至私有仓库供团队成员拉取。
docker rmi
删除本地指定的 Docker 镜像,需确保该镜像没有被任何容器使用。
示例:
docker rmi ubuntu:18.04
,删除本地的 ubuntu:18.04 镜像。应用场景:清理本地不再使用的镜像,释放磁盘空间;更新镜像版本前,删除旧版本镜像。
docker tag
为本地镜像重新打标签,便于管理和识别。
示例:
docker tag ubuntu:latest myubuntu:1.0
,将本地的 ubuntu:latest 镜像重新标记为 myubuntu:1.0。应用场景:自定义镜像标签,使其符合项目命名规范;在推送镜像到不同仓库时,通过重新打标签区分。
二、容器操作核心命令
容器创建与启动
docker run
创建并启动一个新的容器,这是使用 Docker 时最常用的命令之一,可指定诸多参数来配置容器的运行环境。
示例: docker run -d --name mynginx nginx:latest
,后台运行一个名为 mynginx 的 Nginx 容器,使用最新版的 Nginx 镜像。docker run -it ubuntu:latest /bin/bash
,以交互模式运行一个 Ubuntu 容器,并进入 bash 终端。
参数详解:
-d
:后台运行容器。--name
:为容器指定一个名称。-it
:以交互模式运行容器,-i
表示交互式操作,-t
分配一个伪终端。镜像名:标签
:指定使用的镜像及标签。
开发测试时快速创建容器环境;部署应用服务,通过该命令启动业务容器。
docker start
启动一个或多个已创建但处于停止状态的容器。
示例: docker start mynginx
,启动名为 mynginx 的容器。应用场景:容器因某些原因停止后,需要重新启动服务;批量启动多个容器。
docker restart
重启一个或多个容器,相当于先停止再启动容器。
示例: docker restart mynginx
,重启名为 mynginx 的容器。应用场景:容器内部应用更新或配置修改后,需要重启容器使变更生效;容器异常退出后自动重启策略未生效时,手动重启。
容器状态管理
docker ps 列出当前正在运行的容器,可通过参数查看所有容器(包括已停止的)。
docker ps
,显示正在运行的容器列表。
docker ps -a
,显示所有容器,包括已停止的。
docker ps -l
,显示最近一次创建的容器。
监控容器运行状态,查看容器的启动时间、运行时长、端口映射等信息;排查容器是否正常启动。
docker stop
停止一个或多个正在运行的容器,向容器发送 SIGTERM 信号,让容器内的应用优雅地关闭。
示例: docker stop mynginx
,停止名为 mynginx 的容器。应用场景:维护操作时,需要停止容器进行更新、配置修改;夜间或非工作时段,停止非关键业务容器节省资源。
docker kill
强制停止一个或多个正在运行的容器,向容器发送 SIGKILL 信号,立即终止容器进程。
示例: docker kill mynginx
,强制停止名为 mynginx 的容器。应用场景:容器出现异常,无法正常响应停止信号时,使用该命令强制停止;紧急情况下,快速停止容器以避免潜在风险。
容器数据交互
docker logs
查看容器的日志输出,可实时跟踪容器内部应用的运行日志。
docker logs mynginx
,查看名为 mynginx 的容器日志。docker logs -f mynginx
,实时跟踪 mynginx 容器的日志输出,类似tail -f
命令。
开发调试时,通过查看日志定位应用错误;运维监控中,分析容器日志排查系统故障。
docker exec
在已运行的容器内部执行命令,可临时进入容器进行操作或运行特定命令。
docker exec -it mynginx /bin/bash
,进入名为 mynginx 的容器的 bash 终端。docker exec mynginx ls /
,在 mynginx 容器中执行ls /
命令,列出容器根目录下的文件。
容器运行过程中,需要临时修改配置文件、查看文件内容;执行容器内部的维护脚本或命令。
容器清理与删除
docker rm
删除一个或多个已停止的容器,需确保容器已停止运行。
docker rm mynginx
,删除名为 mynginx 的容器。docker rm -f mynginx
,强制删除正在运行的 mynginx 容器(谨慎使用)。
清理不再使用的容器,释放系统资源;项目结束或测试完成后,删除相关容器。
docker container prune
删除所有已停止的容器,一键清理无用容器。
docker container prune
,执行后会要求确认是否删除所有已停止的容器,输入 y
确认。
定期维护 Docker 系统,批量清理已停止的容器,保持系统整洁。
三、网络与存储相关命令
网络操作
docker network ls
列出 Docker 系统中所有的网络,包括默认网络和自定义网络。
docker network ls
,输出内容示例:
查看当前 Docker 网络架构,了解容器所属网络;排查网络连通性问题时,检查网络列表。
docker network create
创建一个新的 Docker 网络,可自定义网络名称、驱动等属性。
示例: docker network create --driver bridge mynetwork
,创建一个名为 mynetwork 的桥接网络。应用场景:多容器应用部署时,创建自定义网络以便容器间通信;隔离不同业务的网络环境。
docker network rm
删除一个或多个指定的 Docker 网络,需确保没有容器正在使用该网络。
示例: docker network rm mynetwork
,删除名为 mynetwork 的网络。应用场景:清理不再使用的自定义网络,释放网络资源;项目重构时,删除旧的网络配置。
docker network connect
将一个或多个容器连接到指定的网络,使容器能够通过该网络与其他容器通信。
示例: docker network connect mynetwork mynginx
,将 mynginx 容器连接到 mynetwork 网络。应用场景:动态调整容器网络连接,根据业务需求将容器接入不同网络;容器启动后,补充网络连接配置。
docker network disconnect
将一个或多个容器从指定的网络断开连接,容器将无法再通过该网络与其他容器通信。
示例: docker network disconnect mynetwork mynginx
,将 mynginx 容器从 mynetwork 网络断开。应用场景:容器不再需要某网络连接时,断开以优化网络资源使用;隔离容器网络,进行安全测试或维护。
存储操作
docker volume ls
列出 Docker 系统中所有的数据卷,数据卷用于存储容器数据,可独立于容器生命周期存在。
docker volume ls
,输出内容示例:
查看当前所有数据卷,了解数据存储情况;排查数据卷使用问题时,检查卷列表。
docker volume create
创建一个新的数据卷,可指定数据卷的名称、驱动等属性。
示例: docker volume create myvolume
,创建一个名为 myvolume 的数据卷。应用场景:容器需要持久化存储数据时,创建数据卷进行挂载;为不同容器分配独立的数据存储空间。
docker volume rm
删除一个或多个指定的数据卷,需确保没有容器正在使用该数据卷。
示例: docker volume rm myvolume
,删除名为 myvolume 的数据卷。应用场景:清理不再使用的数据卷,释放磁盘空间;项目结束或数据迁移后,删除旧数据卷。
docker volume inspect
查看指定数据卷的详细信息,包括数据卷的路径、挂载点、驱动配置等。
四、镜像构建与管理高级命令
镜像构建
docker build
根据 Dockerfile 构建一个新的 Docker 镜像,Dockerfile 包含了一系列指令用于定义镜像的构建过程。
示例: docker build -t myimage:1.0 .
,在当前目录下查找 Dockerfile,并构建一个名为 myimage:1.0 的镜像。参数详解: -t
:指定构建的镜像名称和标签。.
:表示 Dockerfile 所在的上下文路径,Docker 会将该路径下的文件发送给 Docker 守护进程用于构建镜像。应用场景:开发自定义应用时,根据项目需求编写 Dockerfile 并构建镜像;团队内部共享应用镜像,通过构建命令生成统一镜像版本。
镜像优化与清理
docker image prune
删除所有未被任何标签引用的镜像,即悬空镜像,帮助清理无用镜像碎片。
示例: docker image prune
,执行后会要求确认是否删除所有悬空镜像,输入y
确认。应用场景:定期维护 Docker 系统,清理构建过程中产生的悬空镜像,节省磁盘空间。
docker system prune
清理 Docker 系统中的无用数据,包括停止的容器、悬空镜像、未使用的网络和数据卷等,一键优化系统环境。
示例: docker system prune
,执行后会要求确认是否删除所有无用数据,输入y
确认。应用场景:长时间使用 Docker 后,系统积累大量无用数据,通过该命令进行全面清理,提升系统性能和可用性。
五、Docker Compose 常用命令
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置应用的服务、网络和数据卷等,简化了多容器应用的部署和管理。以下是 Docker Compose 的一些常用命令。
docker-compose up
根据 docker-compose.yml 文件配置,创建并启动所有定义的服务容器,可指定参数以不同方式运行。
docker-compose up
,在前台启动所有服务容器,并输出日志。docker-compose up -d
,后台启动所有服务容器。docker-compose up --build
,在启动前重新构建服务镜像。
开发多容器应用时,一键启动整个应用环境;测试新版本应用时,构建并启动服务进行验证。
docker-compose down
停止并删除所有由 docker-compose.yml 文件定义的服务容器、网络和数据卷,清理应用环境。
docker-compose down
,执行后会停止并删除所有相关资源。
项目结束或测试完成后,清理整个应用环境,释放系统资源;切换不同应用版本前,清理旧环境。
docker-compose ps
列出由 docker-compose.yml 文件定义的所有服务容器的状态,类似于 docker ps
命令,但针对 Compose 项目。
docker-compose ps
,输出内容示例:
Name Command State Ports
-------------------------------------------------------------------------------------------------
myproject_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
myproject_web_1 /bin/sh -c npm start Up 0.0.0.0:80->3000/tcp
查看 Compose 项目中各服务容器的运行状态、端口映射等信息;监控应用服务的健康状况。
docker-compose logs
查看由 docker-compose.yml 文件定义的所有服务容器的日志输出,可实时跟踪日志变化。
docker-compose logs
,查看所有服务容器的日志。docker-compose logs -f web
,实时跟踪名为 web 的服务容器的日志输出。
开发调试多容器应用时,通过查看各服务日志定位问题;运维监控中,分析服务日志排查故障。
docker-compose exec
在由 docker-compose.yml 文件定义的指定服务容器内部执行命令,类似于 docker exec
命令,但针对 Compose 项目中的服务。
docker-compose exec web /bin/bash
,进入名为 web 的服务容器的 bash 终端。
需要临时进入 Compose 项目中的某个服务容器进行操作或调试;执行容器内部的维护命令或脚本。
以上 34 个命令涵盖了 Docker 镜像、容器、网络、存储以及 Docker Compose 的常用操作,但在实际工作中,Docker 的命令远不止这些,还有许多高级功能和特定场景下的命令等待读者去探索和学习。熟练掌握这些命令,能够帮助读者在容器化应用的开发、部署、运维等各个环节游刃有余,提高工作效率,确保应用的稳定运行。
---END--- 重磅!网络技术干货圈-技术交流群已成立 扫码可添加小编微信,申请进群。 一定要备注:工种+地点+学校/公司+昵称(如网络工程师+南京+苏宁+猪八戒),根据格式备注,可更快被通过且邀请进群 ▲长按加群
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...