Docker集群应用:Docker常用命令

Docker是一个开源的应用容器引擎,能够将应用及其依赖打包到一个可移植的容器中,实现快速部署、扩展和隔离。作为开发者和运维人员必备的技能,掌握Docker的常用命令是非常重要的。本文将详细介绍Docker的常用命令,并通过实际案例展示其在集群管理中的应用。

目录

  1. 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:执行命令
  2. Docker集群相关命令

    • 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:查看详细信息
  3. Docker网络命令

    • 3.1 docker network ls:查看网络
    • 3.2 docker network create:创建网络
    • 3.3 docker network connect:连接网络
    • 3.4 docker network disconnect:断开网络
  4. Docker卷命令

    • 4.1 docker volume ls:列出卷
    • 4.2 docker volume create:创建卷
    • 4.3 docker volume inspect:查看卷详情
    • 4.4 docker volume rm:删除卷
  5. Docker Compose命令

    • 5.1 docker-compose up:启动多容器应用
    • 5.2 docker-compose down:停止并删除容器、网络、卷
    • 5.3 docker-compose logs:查看日志
    • 5.4 docker-compose ps:查看容器状态
  6. 实际应用场景与案例

    • 6.1 单机部署应用
    • 6.2 Docker集群搭建与服务部署
    • 6.3 使用Docker Compose进行多容器应用部署

1. Docker基础命令

1.1 docker run:启动容器

docker run命令用于启动一个新的容器并执行指定的命令。它是Docker最常用的命令之一。基本用法如下:

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

实例:启动一个基于Ubuntu镜像的容器并进入交互模式。

bashCopy Code
docker run -it ubuntu bash
  • -it:表示以交互模式启动容器,并连接到容器的终端。
  • ubuntu:指定容器使用的镜像。
  • bash:指定容器启动后执行的命令。

应用场景:可以用来快速启动一个开发环境或者调试环境。


1.2 docker ps:查看容器

docker ps命令用于查看当前运行中的容器。如果加上-a选项,可以查看所有容器(包括停止的容器)。

bashCopy Code
docker ps [OPTIONS]

实例:查看所有运行中的容器。

bashCopy Code
docker ps

实例:查看所有容器,包括已停止的。

bashCopy Code
docker ps -a

应用场景:用于查看当前系统上所有运行的容器,以及它们的状态和运行时间。


1.3 docker stop:停止容器

docker stop命令用于停止一个或多个运行中的容器。

bashCopy Code
docker stop CONTAINER [CONTAINER...]

实例:停止容器ID为abc123的容器。

bashCopy Code
docker stop abc123

应用场景:当你需要暂停某个容器的运行时,可以使用该命令。


1.4 docker rm:删除容器

docker rm命令用于删除一个或多个容器。需要注意的是,容器必须处于停止状态才能删除。

bashCopy Code
docker rm CONTAINER [CONTAINER...]

实例:删除容器ID为abc123的容器。

bashCopy Code
docker rm abc123

应用场景:清理不再需要的容器,释放系统资源。


1.5 docker images:查看镜像

docker images命令用于查看本地的Docker镜像。

bashCopy Code
docker images [OPTIONS]

实例:查看所有本地镜像。

bashCopy Code
docker images

应用场景:检查当前系统中有哪些可用的镜像。


1.6 docker rmi:删除镜像

docker rmi命令用于删除本地镜像。与删除容器不同,删除镜像时必须确保没有任何容器依赖该镜像。

bashCopy Code
docker rmi IMAGE [IMAGE...]

实例:删除镜像ID为abc123的镜像。

bashCopy Code
docker rmi abc123

应用场景:清理不再需要的镜像,以节省磁盘空间。


1.7 docker logs:查看日志

docker logs命令用于查看容器的日志输出。

bashCopy Code
docker logs CONTAINER

实例:查看容器ID为abc123的日志。

bashCopy Code
docker logs abc123

应用场景:用于调试容器中的应用,查看输出的日志信息。


1.8 docker exec:执行命令

docker exec命令允许在运行中的容器中执行命令。

bashCopy Code
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

实例:在容器中运行ls命令,查看容器内部文件。

bashCopy Code
docker exec -it abc123 ls

应用场景:可以用来进入容器执行调试命令,或者运行一些后台任务。


2. Docker集群相关命令

2.1 docker swarm init:初始化Swarm集群

Docker Swarm是Docker原生的集群管理工具,docker swarm init命令用于初始化一个Swarm集群。

bashCopy Code
docker swarm init [OPTIONS]

实例:初始化一个新的Swarm集群。

bashCopy Code
docker swarm init

应用场景:初始化一个Swarm集群后,可以开始在集群中部署服务。


2.2 docker swarm join:加入Swarm集群

当你有多个节点时,可以通过docker swarm join命令将一个节点加入到现有的Swarm集群中。

bashCopy Code
docker swarm join [OPTIONS] --token <token> <MANAGER-IP>:<PORT>

实例:将工作节点加入到Swarm集群。

bashCopy Code
docker swarm join --token SWMTKN-1-xxxxxx <MANAGER-IP>:2377

应用场景:通过该命令,将多个节点加入集群,扩展集群规模。


2.3 docker service:管理服务

Docker Swarm中的应用部署是以服务的形式进行管理的。docker service命令用于管理Swarm集群中的服务。

bashCopy Code
docker service [OPTIONS] COMMAND [SERVICE...]

实例:在Swarm集群中创建一个名为web的服务,并指定3个副本。

bashCopy Code
docker service create --name web --replicas 3 nginx

应用场景:适用于需要横向扩展的应用,可以指定服务的副本数。


2.4 docker stack:管理应用堆栈

docker stack命令用于管理在Swarm集群中部署的应用堆栈。应用堆栈是一个集合,它包含了所有的服务、网络和卷。

bashCopy Code
docker stack [OPTIONS] COMMAND

实例:通过docker-compose.yml文件来部署一个堆栈。

bashCopy Code
docker stack deploy -c docker-compose.yml mystack

应用场景:使用docker stack命令可以将多服务的应用(如微服务架构)部署到Docker Swarm集群