Docker集群应用:Docker常用命令
Docker是一个开源的应用容器引擎,能够将应用及其依赖打包到一个可移植的容器中,实现快速部署、扩展和隔离。作为开发者和运维人员必备的技能,掌握Docker的常用命令是非常重要的。本文将详细介绍Docker的常用命令,并通过实际案例展示其在集群管理中的应用。
目录
-
- 1.1
docker run
:启动容器 - 1.2
docker ps
:查看容器 - 1.3
docker stop
:停止容器 - 1.4
docker rm
:删除容器 - 1.5
docker images
:查看镜像 - 1.6
docker rmi
:删除镜像 - 1.7
docker logs
:查看日志 - 1.8
docker exec
:执行命令
- 1.1
-
- 2.1
docker swarm init
:初始化Swarm集群 - 2.2
docker swarm join
:加入Swarm集群 - 2.3
docker service
:管理服务 - 2.4
docker stack
:管理应用堆栈 - 2.5
docker node
:管理Swarm节点 - 2.6
docker inspect
:查看详细信息
- 2.1
-
- 3.1
docker network ls
:查看网络 - 3.2
docker network create
:创建网络 - 3.3
docker network connect
:连接网络 - 3.4
docker network disconnect
:断开网络
- 3.1
-
- 4.1
docker volume ls
:列出卷 - 4.2
docker volume create
:创建卷 - 4.3
docker volume inspect
:查看卷详情 - 4.4
docker volume rm
:删除卷
- 4.1
-
- 5.1
docker-compose up
:启动多容器应用 - 5.2
docker-compose down
:停止并删除容器、网络、卷 - 5.3
docker-compose logs
:查看日志 - 5.4
docker-compose ps
:查看容器状态
- 5.1
-
- 6.1 单机部署应用
- 6.2 Docker集群搭建与服务部署
- 6.3 使用Docker Compose进行多容器应用部署
1. Docker基础命令
1.1 docker run
:启动容器
docker run
命令用于启动一个新的容器并执行指定的命令。它是Docker最常用的命令之一。基本用法如下:
bashCopy Codedocker run [OPTIONS] IMAGE [COMMAND] [ARG...]
实例:启动一个基于Ubuntu镜像的容器并进入交互模式。
bashCopy Codedocker run -it ubuntu bash
-it
:表示以交互模式启动容器,并连接到容器的终端。ubuntu
:指定容器使用的镜像。bash
:指定容器启动后执行的命令。
应用场景:可以用来快速启动一个开发环境或者调试环境。
1.2 docker ps
:查看容器
docker ps
命令用于查看当前运行中的容器。如果加上-a
选项,可以查看所有容器(包括停止的容器)。
bashCopy Codedocker ps [OPTIONS]
实例:查看所有运行中的容器。
bashCopy Codedocker ps
实例:查看所有容器,包括已停止的。
bashCopy Codedocker ps -a
应用场景:用于查看当前系统上所有运行的容器,以及它们的状态和运行时间。
1.3 docker stop
:停止容器
docker stop
命令用于停止一个或多个运行中的容器。
bashCopy Codedocker stop CONTAINER [CONTAINER...]
实例:停止容器ID为abc123
的容器。
bashCopy Codedocker stop abc123
应用场景:当你需要暂停某个容器的运行时,可以使用该命令。
1.4 docker rm
:删除容器
docker rm
命令用于删除一个或多个容器。需要注意的是,容器必须处于停止状态才能删除。
bashCopy Codedocker rm CONTAINER [CONTAINER...]
实例:删除容器ID为abc123
的容器。
bashCopy Codedocker rm abc123
应用场景:清理不再需要的容器,释放系统资源。
1.5 docker images
:查看镜像
docker images
命令用于查看本地的Docker镜像。
bashCopy Codedocker images [OPTIONS]
实例:查看所有本地镜像。
bashCopy Codedocker images
应用场景:检查当前系统中有哪些可用的镜像。
1.6 docker rmi
:删除镜像
docker rmi
命令用于删除本地镜像。与删除容器不同,删除镜像时必须确保没有任何容器依赖该镜像。
bashCopy Codedocker rmi IMAGE [IMAGE...]
实例:删除镜像ID为abc123
的镜像。
bashCopy Codedocker rmi abc123
应用场景:清理不再需要的镜像,以节省磁盘空间。
1.7 docker logs
:查看日志
docker logs
命令用于查看容器的日志输出。
bashCopy Codedocker logs CONTAINER
实例:查看容器ID为abc123
的日志。
bashCopy Codedocker logs abc123
应用场景:用于调试容器中的应用,查看输出的日志信息。
1.8 docker exec
:执行命令
docker exec
命令允许在运行中的容器中执行命令。
bashCopy Codedocker exec [OPTIONS] CONTAINER COMMAND [ARG...]
实例:在容器中运行ls
命令,查看容器内部文件。
bashCopy Codedocker exec -it abc123 ls
应用场景:可以用来进入容器执行调试命令,或者运行一些后台任务。
2. Docker集群相关命令
2.1 docker swarm init
:初始化Swarm集群
Docker Swarm是Docker原生的集群管理工具,docker swarm init
命令用于初始化一个Swarm集群。
bashCopy Codedocker swarm init [OPTIONS]
实例:初始化一个新的Swarm集群。
bashCopy Codedocker swarm init
应用场景:初始化一个Swarm集群后,可以开始在集群中部署服务。
2.2 docker swarm join
:加入Swarm集群
当你有多个节点时,可以通过docker swarm join
命令将一个节点加入到现有的Swarm集群中。
bashCopy Codedocker swarm join [OPTIONS] --token <token> <MANAGER-IP>:<PORT>
实例:将工作节点加入到Swarm集群。
bashCopy Codedocker swarm join --token SWMTKN-1-xxxxxx <MANAGER-IP>:2377
应用场景:通过该命令,将多个节点加入集群,扩展集群规模。
2.3 docker service
:管理服务
Docker Swarm中的应用部署是以服务的形式进行管理的。docker service
命令用于管理Swarm集群中的服务。
bashCopy Codedocker service [OPTIONS] COMMAND [SERVICE...]
实例:在Swarm集群中创建一个名为web
的服务,并指定3个副本。
bashCopy Codedocker service create --name web --replicas 3 nginx
应用场景:适用于需要横向扩展的应用,可以指定服务的副本数。
2.4 docker stack
:管理应用堆栈
docker stack
命令用于管理在Swarm集群中部署的应用堆栈。应用堆栈是一个集合,它包含了所有的服务、网络和卷。
bashCopy Codedocker stack [OPTIONS] COMMAND
实例:通过docker-compose.yml
文件来部署一个堆栈。
bashCopy Codedocker stack deploy -c docker-compose.yml mystack
应用场景:使用docker stack
命令可以将多服务的应用(如微服务架构)部署到Docker Swarm集群