插件窝 干货文章 如何使用Linux进行容器部署

如何使用Linux进行容器部署

Docker 容器 nginx sudo 954    来源:    2025-04-18

在Linux系统中部署容器主要依赖于容器化技术(如Docker或Podman),结合编排工具(如Kubernetes或Docker Compose)可实现更复杂的场景。以下是详细步骤和注意事项:


一、核心工具选择

  1. 容器运行时

    • Docker:最流行的容器引擎(需注意开源协议变化)
    • Podman:无守护进程的替代方案,兼容Docker命令
    • containerd:轻量级运行时,Kubernetes常用
  2. 编排工具(可选)

    • Kubernetes (k8s):生产级容器编排
    • Docker Compose:单机多容器管理

二、安装容器引擎(以Docker为例)

1. 安装Docker

# 卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# 添加Docker官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 设置仓库
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 验证安装
sudo docker run hello-world

2. 非root用户操作(可选)

sudo usermod -aG docker $USER
newgrp docker  # 刷新用户组

三、基础容器操作

1. 拉取镜像

docker pull nginx:alpine  # 拉取Nginx镜像

2. 运行容器

docker run -d -p 8080:80 --name my-nginx nginx:alpine
  • -d:后台运行
  • -p 8080:80:将主机8080端口映射到容器80端口
  • --name:指定容器名称

3. 管理容器

docker ps           # 查看运行中的容器
docker stop my-nginx # 停止容器
docker rm my-nginx  # 删除容器
docker logs my-nginx # 查看日志

四、使用Docker Compose编排多容器

1. 安装Docker Compose

sudo apt-get install docker-compose-plugin  # Docker v20.10+内置

2. 编写docker-compose.yml

version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
  db:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: example

3. 启动服务

docker compose up -d  # 后台启动
docker compose ps    # 查看状态

五、进阶:Kubernetes部署(Minikube示例)

1. 安装Minikube

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

2. 启动集群

minikube start --driver=docker  # 使用Docker驱动

3. 部署应用

kubectl create deployment nginx --image=nginx:alpine
kubectl expose deployment nginx --port=80 --type=NodePort
minikube service nginx  # 访问服务

六、安全与优化

  1. 镜像安全

    • 使用官方或可信来源的镜像
    • 定期扫描漏洞:docker scan nginx:alpine
  2. 资源限制

    docker run -d --memory=512m --cpus=1 nginx:alpine
    
  3. 日志管理

    • 使用json-file日志驱动或集成ELK栈
  4. 网络隔离

    • 创建自定义网络:docker network create my-net

七、常见问题解决

  1. 端口冲突

    • 检查占用:sudo netstat -tulnp | grep 8080
  2. 存储持久化

    docker run -v /host/path:/container/path nginx:alpine
    
  3. 时区问题

    docker run -e TZ=Asia/Shanghai nginx:alpine
    

通过以上步骤,您可以在Linux上快速部署和管理容器。根据需求选择工具链,生产环境建议使用Kubernetes编排并配合监控系统(如Prometheus + Grafana)。