插件窝 干货文章 如何进行Linux系统的容器化部署和管理

如何进行Linux系统的容器化部署和管理

Docker 容器 bash container 354    来源:    2025-04-10

Linux系统容器化部署与管理指南

容器化技术已成为现代IT基础设施的重要组成部分,以下是Linux系统容器化部署和管理的全面指南。

一、容器化基础

1. 容器与虚拟机的区别

  • 容器:共享主机内核,轻量级,快速启动
  • 虚拟机:完整操作系统,资源隔离更强

2. 主流容器技术

  • Docker:最流行的容器引擎
  • Podman:无守护进程的替代方案
  • LXC/LXD:系统级容器解决方案
  • containerd:行业标准的容器运行时

二、Docker部署与管理

1. 安装Docker

# Ubuntu/Debian
sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker

# CentOS/RHEL
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

2. 基本命令

# 拉取镜像
docker pull ubuntu:20.04

# 运行容器
docker run -it --name my_container ubuntu:20.04 /bin/bash

# 列出容器
docker ps -a

# 停止/启动容器
docker stop my_container
docker start my_container

# 删除容器
docker rm my_container

3. 镜像管理

# 构建镜像
docker build -t my_image .

# 列出镜像
docker images

# 推送镜像到仓库
docker tag my_image username/my_image
docker push username/my_image

三、高级容器管理

1. 容器网络

# 创建自定义网络
docker network create my_network

# 连接容器到网络
docker run --network=my_network --name container1 my_image
docker run --network=my_network --name container2 my_image

2. 数据持久化

# 创建卷
docker volume create my_volume

# 使用卷
docker run -v my_volume:/data my_image

# 绑定挂载主机目录
docker run -v /host/path:/container/path my_image

3. 资源限制

# 限制CPU和内存
docker run --cpus=1 --memory=512m my_image

四、Kubernetes管理容器

1. 安装Minikube(本地K8s)

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start

2. 基本Kubernetes命令

# 部署应用
kubectl create deployment my-app --image=my_image

# 暴露服务
kubectl expose deployment my-app --type=LoadBalancer --port=80

# 查看资源
kubectl get pods,services,deployments

五、安全最佳实践

  1. 非root用户运行容器

    docker run --user 1000:1000 my_image
    
  2. 只读文件系统

    docker run --read-only my_image
    
  3. 限制能力

    docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE my_image
    
  4. 定期更新镜像

    docker pull my_image:latest
    

六、监控与日志

1. 容器日志

docker logs my_container
docker logs --tail 100 -f my_container  # 实时查看

2. 资源监控

docker stats
docker top my_container

3. Prometheus + Grafana

# 部署监控栈
docker run -d --name=prometheus -p 9090:9090 prom/prometheus
docker run -d --name=grafana -p 3000:3000 grafana/grafana

七、编排工具比较

工具 适用场景 特点
Docker Compose 单机多容器应用 简单YAML配置
Kubernetes 生产级容器编排 自动扩展、自愈
Nomad 简单轻量级编排 支持容器和非容器工作负载
Swarm Docker原生集群 与Docker紧密集成

八、故障排查

  1. 容器无法启动

    docker inspect my_container
    docker logs my_container
    
  2. 网络问题

    docker network inspect my_network
    docker exec -it my_container ping google.com
    
  3. 资源不足

    docker stats
    free -h
    top
    

通过掌握这些容器化技术,您可以在Linux系统上高效地部署、管理和扩展容器化应用。