插件窝 干货文章 如何在Linux中使用容器技术

如何在Linux中使用容器技术

Docker 容器 bash sudo 89    来源:    2025-04-18

在Linux中使用容器技术(如Docker、Podman或LXC)可以实现轻量级虚拟化、快速部署和隔离应用环境。以下是详细指南:


1. 选择容器技术

  • Docker:最流行的容器平台,适合应用打包和微服务。
  • Podman:兼容Docker但无需守护进程,更安全。
  • LXC/LXD:系统级容器,接近轻量级虚拟机。

2. 安装容器运行时

Docker 安装

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

# 安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证安装
sudo docker run hello-world

Podman 安装(Ubuntu为例)

sudo apt-get update
sudo apt-get install podman

LXC 安装

sudo apt-get install lxc lxc-templates

3. 基本容器操作

Docker/Podman 示例

# 拉取镜像(如Ubuntu)
docker pull ubuntu:20.04

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

# 列出运行中的容器
docker ps

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

# 删除容器
docker rm my_container

# 构建自定义镜像(通过Dockerfile)
docker build -t my_image .

LXC 示例

# 创建容器
sudo lxc-create -n my_lxc -t download -- --dist ubuntu --release focal --arch amd64

# 启动容器
sudo lxc-start -n my_lxc

# 进入容器
sudo lxc-attach -n my_lxc

4. 网络与存储配置

网络

  • 端口映射:将容器端口映射到主机(Docker示例): bash docker run -d -p 8080:80 nginx
  • 自定义网络bash docker network create my_network docker run --network=my_network my_image

存储

  • 挂载主机目录bash docker run -v /host/path:/container/path my_image
  • 使用数据卷bash docker volume create my_volume docker run -v my_volume:/data my_image

5. 容器编排(可选)

  • Docker Compose:定义多容器应用。

    # docker-compose.yml 示例
    version: '3'
    services:
    web:
      image: nginx
      ports:
        - "80:80"
    db:
      image: mysql
      environment:
        MYSQL_ROOT_PASSWORD: example
    

    启动:

    docker-compose up -d
    
  • Kubernetes:大规模容器编排(需额外安装kubeadm/minikube)。


6. 安全实践

  • 非root用户运行(Podman默认支持): bash podman run --user 1000:1000 ubuntu
  • 限制资源bash docker run --memory=1g --cpus=2 my_image
  • 只读文件系统bash docker run --read-only my_image

7. 监控与日志

# 查看容器日志
docker logs my_container

# 监控资源使用
docker stats

# 检查容器详情
docker inspect my_container

常见问题解决

  • 权限问题:将用户加入docker组: bash sudo usermod -aG docker $USER newgrp docker # 立即生效
  • 存储清理bash docker system prune -a
  • 网络冲突:检查端口占用或重置Docker网络: bash sudo systemctl restart docker

通过以上步骤,您可以高效地在Linux中部署和管理容器。根据需求选择工具,并遵循安全最佳实践。