温馨提示×

Docker在Ubuntu中的容器编排怎么做

小樊
61
2025-08-11 14:51:27
栏目: 智能运维

在Ubuntu中进行Docker容器编排,常用工具为Docker ComposeKubernetes,以下是具体步骤:

一、Docker Compose(轻量级编排,适合中小规模场景)

1. 安装Docker和Docker Compose

  • 安装Docker

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io  # 安装Docker CE
    sudo systemctl enable docker  # 开机自启
    sudo usermod -aG docker $USER  # 可选:添加用户到docker组(避免sudo)
    
  • 安装Docker Compose

    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    docker-compose --version  # 验证安装
    

2. 编写docker-compose.yml文件

在项目目录创建docker-compose.yml,定义服务、网络和卷。例如:

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

3. 启动和管理容器

  • 启动服务

    docker-compose up -d  # 后台运行
    
  • 查看状态

    docker-compose ps  # 查看运行中的服务
    docker-compose logs  # 查看日志
    
  • 停止服务

    docker-compose down  # 停止并删除容器、网络
    

二、Kubernetes(企业级编排,适合大规模集群)

1. 安装Kubernetes组件

  • 安装Docker
    同上(需先安装Docker作为Kubernetes的运行时)。

  • 安装kubeadm、kubelet、kubectl

    sudo apt update
    sudo apt install -y apt-transport-https curl
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo apt update
    sudo apt install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl  # 锁定版本
    

2. 初始化Kubernetes集群

  • 在Master节点执行

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16  # 指定Pod网络CIDR
    
  • 配置kubectl

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

3. 部署应用

  • 创建YAML文件(如nginx-deployment.yaml):

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            ports:
            - containerPort: 80
    
  • 部署到集群

    kubectl apply -f nginx-deployment.yaml
    
  • 查看Pod状态

    kubectl get pods
    

三、选择建议

  • Docker Compose:适合开发、测试或小型生产环境,快速定义多容器应用,无需复杂集群配置。
  • Kubernetes:适合大规模集群、需要高可用性和自动化的场景,支持滚动更新、服务发现等高级功能。

更多细节可参考官方文档:Docker Compose文档Kubernetes文档

0