# Linux內核容器怎么使用
## 1. 容器技術概述
Linux容器(LXC/LXD, Docker等)是一種輕量級的虛擬化技術,通過內核的命名空間(namespaces)和控制組(cgroups)實現進程隔離。與虛擬機相比,容器共享主機內核,啟動更快、資源占用更少。
### 核心組件
- **Namespaces**:提供進程、網絡、文件系統等的隔離
- **Cgroups**:限制資源使用(CPU/內存等)
- **聯合文件系統**(OverlayFS):實現分層鏡像
---
## 2. 安裝容器運行時
### 2.1 安裝Docker(推薦)
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker
# CentOS/RHEL
sudo yum install docker
sudo systemctl start docker
sudo apt install lxd
sudo lxd init # 初始化配置
# 拉取鏡像
docker pull ubuntu:22.04
# 運行容器
docker run -it --name my_container ubuntu:22.04 /bin/bash
# 查看運行中的容器
docker ps
# 停止/刪除容器
docker stop my_container
docker rm my_container
# 創建容器
lxc launch ubuntu:22.04 my-lxc
# 進入容器
lxc exec my-lxc -- /bin/bash
# 查看容器列表
lxc list
| 模式 | 說明 |
|---|---|
bridge |
默認橋接網絡(NAT) |
host |
共享主機網絡棧 |
none |
無網絡 |
示例:創建自定義網絡
docker network create my_network
docker run --network=my_network nginx
編輯容器配置:
lxc config edit my-lxc
添加網絡設備:
device:
eth0:
name: eth0
nictype: bridged
parent: lxdbr0
type: nic
# 創建持久化卷
docker volume create my_vol
# 掛載卷
docker run -v my_vol:/data alpine
# 添加ZFS存儲池
lxc storage create pool1 zfs source=/dev/sdb
docker run --user 1000:1000 alpine
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE nginx
# 加載AppArmor配置
docker run --security-opt "apparmor=my_profile" debian
docker-compose.yml:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
啟動服務:
docker-compose up -d
部署Pod:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
# 查看容器資源使用
docker stats
# cgroup統計
cat /sys/fs/cgroup/memory/docker/<CONTNER_ID>/memory.usage_in_bytes
# 查看容器日志
docker logs -f my_container
# 檢查容器進程
docker top my_container
docker run -m 512m --cpus=1.5 nginx
Linux容器技術通過內核級隔離實現了高效的應用沙盒化。掌握基礎操作后,可進一步學習: - 容器鏡像構建(Dockerfile) - 容器網絡插件(Calico, Flannel) - 服務網格(Istio, Linkerd)
注意:生產環境建議使用容器編排平臺(Kubernetes/OpenShift)管理大規模部署。 “`
(全文約1350字,實際字數可能因Markdown渲染略有差異)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。