Docker 指令详解:全面掌握容器化管理工具
Docker 是当前最流行的容器化平台之一,它通过轻量级的虚拟化技术,让开发者能够快速构建、部署和管理应用。掌握 Docker 的基础指令对于有效使用这一工具至关重要。本文将详细介绍 Docker 的常用命令,帮助你全面了解和运用 Docker。
目录
- Docker 基础概念
- Docker 镜像管理命令
docker build
docker pull
docker push
docker images
docker rmi
- Docker 容器管理命令
docker run
docker ps
docker stop
docker start
docker restart
docker rm
docker exec
docker logs
- Docker 网络管理命令
docker network ls
docker network create
docker network inspect
docker network rm
- Docker 卷管理命令
docker volume ls
docker volume create
docker volume inspect
docker volume rm
- Docker 系统管理命令
docker info
docker version
docker system df
docker system prune
- 其他有用命令
docker inspect
docker tag
docker history
- 总结
Docker 基础概念
在深入命令之前,了解一些 Docker 的基本概念是非常有帮助的:
- 镜像(Image):Docker 镜像是一个包含应用及其所有依赖的轻量级、独立、可执行的软件包。它是容器的蓝图。
- 容器(Container):容器是镜像的运行实例,具有独立的文件系统、网络和进程空间。
- 仓库(Repository):用于存储和分发 Docker 镜像的地方,如 Docker Hub。
- Dockerfile:用于定义镜像内容的脚本文件,包含一系列构建指令。
Docker 镜像管理命令
镜像管理是 Docker 运维中的核心部分,以下是常用的镜像管理命令:
docker build
用于根据 Dockerfile 构建一个新的镜像。
语法:
docker build [OPTIONS] PATH | URL | -
示例:
在当前目录下使用 Dockerfile 构建镜像,并命名为 myapp:latest
:
docker build -t myapp:latest .
docker pull
从仓库中拉取镜像到本地。
语法:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
示例:
拉取官方的 Nginx 镜像:
docker pull nginx:latest
docker push
将本地镜像推送到仓库。
语法:
docker push [OPTIONS] NAME[:TAG]
示例:
推送本地的 myapp:latest
镜像到 Docker Hub:
docker push myusername/myapp:latest
注意:推送前需先登录 Docker Hub,使用
docker login
命令。
docker images
列出本地存储的所有镜像。
语法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
示例:
查看所有本地镜像:
docker images
docker rmi
删除本地镜像。
语法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
示例:
删除镜像 myapp:latest
:
docker rmi myapp:latest
Docker 容器管理命令
管理容器是 Docker 使用中的主要任务,以下是常用的容器管理命令:
docker run
创建并运行一个新的容器。
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
示例:
以交互模式运行 Ubuntu 容器,并进入 Bash:
docker run -it ubuntu:latest /bin/bash
docker ps
列出当前运行的容器。
语法:
docker ps [OPTIONS]
示例:
查看所有正在运行的容器:
docker ps
查看包括停止的容器:
docker ps -a
docker stop
停止一个或多个运行中的容器。
语法:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
示例:
停止名为 mycontainer
的容器:
docker stop mycontainer
docker start
启动一个已停止的容器。
语法:
docker start [OPTIONS] CONTAINER [CONTAINER...]
示例:
启动名为 mycontainer
的容器:
docker start mycontainer
docker restart
重启一个或多个容器。
语法:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
示例:
重启名为 mycontainer
的容器:
docker restart mycontainer
docker rm
删除一个或多个容器。
语法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
示例:
删除名为 mycontainer
的容器:
docker rm mycontainer
注意:容器必须停止才能删除,或者使用
-f
强制删除。
docker exec
在运行中的容器内执行指定的命令。
语法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
示例:
在 mycontainer
容器内运行 Bash:
docker exec -it mycontainer /bin/bash
docker logs
查看容器的日志输出。
语法:
docker logs [OPTIONS] CONTAINER
示例:
查看 mycontainer
的日志:
docker logs mycontainer
Docker 网络管理命令
Docker 提供了灵活的网络配置选项,以下是常用的网络管理命令:
docker network ls
列出所有 Docker 网络。
语法:
docker network ls
示例:
查看所有网络:
docker network ls
docker network create
创建一个新的 Docker 网络。
语法:
docker network create [OPTIONS] NETWORK
示例:
创建一个名为 mynetwork
的桥接网络:
docker network create mynetwork
docker network inspect
查看指定网络的详细信息。
语法:
docker network inspect [OPTIONS] NETWORK
示例:
查看 mynetwork
网络的详细信息:
docker network inspect mynetwork
docker network rm
删除一个或多个网络。
语法:
docker network rm NETWORK [NETWORK...]
示例:
删除 mynetwork
网络:
docker network rm mynetwork
Docker 卷管理命令
Docker 卷用于持久化和管理容器数据,以下是相关命令:
docker volume ls
列出所有卷。
语法:
docker volume ls
示例:
查看所有卷:
docker volume ls
docker volume create
创建一个新的卷。
语法:
docker volume create [OPTIONS] [VOLUME]
示例:
创建一个名为 myvolume
的卷:
docker volume create myvolume
docker volume inspect
查看卷的详细信息。
语法:
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
示例:
查看 myvolume
的详细信息:
docker volume inspect myvolume
docker volume rm
删除一个或多个卷。
语法:
docker volume rm [OPTIONS] VOLUME [VOLUME...]
示例:
删除 myvolume
卷:
docker volume rm myvolume
注意:卷如果正在被容器使用,将无法删除。
Docker 系统管理命令
这些命令用于获取 Docker 系统的状态和进行系统级别的管理。
docker info
显示 Docker 系统的全面信息。
语法:
docker info
示例:
查看 Docker 系统信息:
docker info
docker version
显示 Docker 客户端和服务器(守护进程)的版本信息。
语法:
docker version
示例:
查看 Docker 版本:
docker version
docker system df
显示 Docker 使用的磁盘空间情况。
语法:
docker system df
示例:
查看 Docker 磁盘使用情况:
docker system df
docker system prune
清理未使用的 Docker 数据,包括停止的容器、未使用的网络、悬挂的镜像和未使用的卷。
语法:
docker system prune [OPTIONS]
示例:
执行全面清理(包括未使用的卷):
docker system prune -a --volumes
注意:此操作会删除未使用的数据,请谨慎使用。
其他有用命令
除了上述常用命令外,Docker 还提供了一些其他实用的命令:
docker inspect
获取 Docker 对象(容器、镜像、网络、卷等)的详细信息。
语法:
docker inspect [OPTIONS] NAME [NAME...]
示例:
查看 mycontainer
容器的详细信息:
docker inspect mycontainer
docker tag
为镜像创建一个新的标签。
语法:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
示例:
将本地 myapp:latest
镜像打标签为 myusername/myapp:v1.0
:
docker tag myapp:latest myusername/myapp:v1.0
docker history
查看镜像的历史层信息。
语法:
docker history [OPTIONS] IMAGE
示例:
查看 myapp:latest
镜像的历史:
docker history myapp:latest
总结
熟练掌握 Docker 的各类命令,能够帮助你更加高效地管理容器化环境。从镜像的构建与管理,到容器的生命周期操作,再到网络和数据卷的配置,Docker 提供了一套全面的工具链。本文涵盖了常用的 Docker 指令及其使用示例,希望能作为你学习和参考的指南。随着你对 Docker 的深入了解,还可以探索更多高级功能,如编排工具 Docker Compose 和 Kubernetes 的集成,进一步提升应用部署与管理的效率。