# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。