Docker 指令详解:全面掌握容器化管理工具

Docker 是当前最流行的容器化平台之一,它通过轻量级的虚拟化技术,让开发者能够快速构建、部署和管理应用。掌握 Docker 的基础指令对于有效使用这一工具至关重要。本文将详细介绍 Docker 的常用命令,帮助你全面了解和运用 Docker。

目录

  1. [Docker 基础概念](#Docker 基础概念)
  2. [Docker 镜像管理命令](#Docker 镜像管理命令)
    • docker build
    • docker pull
    • docker push
    • docker images
    • docker rmi
  3. [Docker 容器管理命令](#Docker 容器管理命令)
    • docker run
    • docker ps
    • docker stop
    • docker start
    • docker restart
    • docker rm
    • docker exec
    • docker logs
  4. [Docker 网络管理命令](#Docker 网络管理命令)
    • docker network ls
    • docker network create
    • docker network inspect
    • docker network rm
  5. [Docker 卷管理命令](#Docker 卷管理命令)
    • docker volume ls
    • docker volume create
    • docker volume inspect
    • docker volume rm
  6. [Docker 系统管理命令](#Docker 系统管理命令)
    • docker info
    • docker version
    • docker system df
    • docker system prune
  7. 其他有用命令
    • docker inspect
    • docker tag
    • docker history
  8. 总结

Docker 基础概念

在深入命令之前,了解一些 Docker 的基本概念是非常有帮助的:

  • 镜像(Image):Docker 镜像是一个包含应用及其所有依赖的轻量级、独立、可执行的软件包。它是容器的蓝图。
  • 容器(Container):容器是镜像的运行实例,具有独立的文件系统、网络和进程空间。
  • 仓库(Repository):用于存储和分发 Docker 镜像的地方,如 Docker Hub。
  • Dockerfile:用于定义镜像内容的脚本文件,包含一系列构建指令。

Docker 镜像管理命令

镜像管理是 Docker 运维中的核心部分,以下是常用的镜像管理命令:

docker build

用于根据 Dockerfile 构建一个新的镜像。

语法:

bash 复制代码
docker build [OPTIONS] PATH | URL | -

示例:

在当前目录下使用 Dockerfile 构建镜像,并命名为 myapp:latest

bash 复制代码
docker build -t myapp:latest .

docker pull

从仓库中拉取镜像到本地。

语法:

bash 复制代码
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

示例:

拉取官方的 Nginx 镜像:

bash 复制代码
docker pull nginx:latest

docker push

将本地镜像推送到仓库。

语法:

bash 复制代码
docker push [OPTIONS] NAME[:TAG]

示例:

推送本地的 myapp:latest 镜像到 Docker Hub:

bash 复制代码
docker push myusername/myapp:latest

注意 :推送前需先登录 Docker Hub,使用 docker login 命令。

docker images

列出本地存储的所有镜像。

语法:

bash 复制代码
docker images [OPTIONS] [REPOSITORY[:TAG]]

示例:

查看所有本地镜像:

bash 复制代码
docker images

docker rmi

删除本地镜像。

语法:

bash 复制代码
docker rmi [OPTIONS] IMAGE [IMAGE...]

示例:

删除镜像 myapp:latest

bash 复制代码
docker rmi myapp:latest

Docker 容器管理命令

管理容器是 Docker 使用中的主要任务,以下是常用的容器管理命令:

docker run

创建并运行一个新的容器。

语法:

bash 复制代码
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

示例:

以交互模式运行 Ubuntu 容器,并进入 Bash:

bash 复制代码
docker run -it ubuntu:latest /bin/bash

docker ps

列出当前运行的容器。

语法:

bash 复制代码
docker ps [OPTIONS]

示例:

查看所有正在运行的容器:

bash 复制代码
docker ps

查看包括停止的容器:

bash 复制代码
docker ps -a

docker stop

停止一个或多个运行中的容器。

语法:

bash 复制代码
docker stop [OPTIONS] CONTAINER [CONTAINER...]

示例:

停止名为 mycontainer 的容器:

bash 复制代码
docker stop mycontainer

docker start

启动一个已停止的容器。

语法:

bash 复制代码
docker start [OPTIONS] CONTAINER [CONTAINER...]

示例:

启动名为 mycontainer 的容器:

bash 复制代码
docker start mycontainer

docker restart

重启一个或多个容器。

语法:

bash 复制代码
docker restart [OPTIONS] CONTAINER [CONTAINER...]

示例:

重启名为 mycontainer 的容器:

bash 复制代码
docker restart mycontainer

docker rm

删除一个或多个容器。

语法:

bash 复制代码
docker rm [OPTIONS] CONTAINER [CONTAINER...]

示例:

删除名为 mycontainer 的容器:

bash 复制代码
docker rm mycontainer

注意 :容器必须停止才能删除,或者使用 -f 强制删除。

docker exec

在运行中的容器内执行指定的命令。

语法:

bash 复制代码
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

示例:

mycontainer 容器内运行 Bash:

bash 复制代码
docker exec -it mycontainer /bin/bash

docker logs

查看容器的日志输出。

语法:

bash 复制代码
docker logs [OPTIONS] CONTAINER

示例:

查看 mycontainer 的日志:

bash 复制代码
docker logs mycontainer

Docker 网络管理命令

Docker 提供了灵活的网络配置选项,以下是常用的网络管理命令:

docker network ls

列出所有 Docker 网络。

语法:

bash 复制代码
docker network ls

示例:

查看所有网络:

bash 复制代码
docker network ls

docker network create

创建一个新的 Docker 网络。

语法:

bash 复制代码
docker network create [OPTIONS] NETWORK

示例:

创建一个名为 mynetwork 的桥接网络:

bash 复制代码
docker network create mynetwork

docker network inspect

查看指定网络的详细信息。

语法:

bash 复制代码
docker network inspect [OPTIONS] NETWORK

示例:

查看 mynetwork 网络的详细信息:

bash 复制代码
docker network inspect mynetwork

docker network rm

删除一个或多个网络。

语法:

bash 复制代码
docker network rm NETWORK [NETWORK...]

示例:

删除 mynetwork 网络:

bash 复制代码
docker network rm mynetwork

Docker 卷管理命令

Docker 卷用于持久化和管理容器数据,以下是相关命令:

docker volume ls

列出所有卷。

语法:

bash 复制代码
docker volume ls

示例:

查看所有卷:

bash 复制代码
docker volume ls

docker volume create

创建一个新的卷。

语法:

bash 复制代码
docker volume create [OPTIONS] [VOLUME]

示例:

创建一个名为 myvolume 的卷:

bash 复制代码
docker volume create myvolume

docker volume inspect

查看卷的详细信息。

语法:

bash 复制代码
docker volume inspect [OPTIONS] VOLUME [VOLUME...]

示例:

查看 myvolume 的详细信息:

bash 复制代码
docker volume inspect myvolume

docker volume rm

删除一个或多个卷。

语法:

bash 复制代码
docker volume rm [OPTIONS] VOLUME [VOLUME...]

示例:

删除 myvolume 卷:

bash 复制代码
docker volume rm myvolume

注意:卷如果正在被容器使用,将无法删除。

Docker 系统管理命令

这些命令用于获取 Docker 系统的状态和进行系统级别的管理。

docker info

显示 Docker 系统的全面信息。

语法:

bash 复制代码
docker info

示例:

查看 Docker 系统信息:

bash 复制代码
docker info

docker version

显示 Docker 客户端和服务器(守护进程)的版本信息。

语法:

bash 复制代码
docker version

示例:

查看 Docker 版本:

bash 复制代码
docker version

docker system df

显示 Docker 使用的磁盘空间情况。

语法:

bash 复制代码
docker system df

示例:

查看 Docker 磁盘使用情况:

bash 复制代码
docker system df

docker system prune

清理未使用的 Docker 数据,包括停止的容器、未使用的网络、悬挂的镜像和未使用的卷。

语法:

bash 复制代码
docker system prune [OPTIONS]

示例:

执行全面清理(包括未使用的卷):

bash 复制代码
docker system prune -a --volumes

注意:此操作会删除未使用的数据,请谨慎使用。

其他有用命令

除了上述常用命令外,Docker 还提供了一些其他实用的命令:

docker inspect

获取 Docker 对象(容器、镜像、网络、卷等)的详细信息。

语法:

bash 复制代码
docker inspect [OPTIONS] NAME [NAME...]

示例:

查看 mycontainer 容器的详细信息:

bash 复制代码
docker inspect mycontainer

docker tag

为镜像创建一个新的标签。

语法:

bash 复制代码
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

示例:

将本地 myapp:latest 镜像打标签为 myusername/myapp:v1.0

bash 复制代码
docker tag myapp:latest myusername/myapp:v1.0

docker history

查看镜像的历史层信息。

语法:

bash 复制代码
docker history [OPTIONS] IMAGE

示例:

查看 myapp:latest 镜像的历史:

bash 复制代码
docker history myapp:latest

总结

熟练掌握 Docker 的各类命令,能够帮助你更加高效地管理容器化环境。从镜像的构建与管理,到容器的生命周期操作,再到网络和数据卷的配置,Docker 提供了一套全面的工具链。本文涵盖了常用的 Docker 指令及其使用示例,希望能作为你学习和参考的指南。随着你对 Docker 的深入了解,还可以探索更多高级功能,如编排工具 Docker Compose 和 Kubernetes 的集成,进一步提升应用部署与管理的效率。

相关推荐
艾迪的技术之路2 分钟前
redisson使用lock导致死锁问题
java·后端·面试
今天背单词了吗98020 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
天天摸鱼的java工程师23 分钟前
使用 Spring Boot 整合高德地图实现路线规划功能
java·后端
东阳马生架构38 分钟前
订单初版—2.生单链路中的技术问题说明文档
java
咖啡啡不加糖1 小时前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南1 小时前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
DKPT1 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
Percep_gan1 小时前
idea的使用小技巧,个人向
java·ide·intellij-idea
缘来是庄1 小时前
设计模式之迭代器模式
java·设计模式·迭代器模式