Docker(三)容器管理工具

本文对比了LXC和Docker两种容器管理工具,详细介绍了LXC的安装、配置和使用过程,以及Docker的优势和缺点。通过实例展示了如何使用LXC创建和管理容器,同时指出了Docker在快速部署、高效虚拟化和简化配置方面的优点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

容器管理工具:

目前主要是使用 docker, 早期有使用 lxc。

LXC

LXC: LXC 为 Linux Container 的简写。可以提供轻量级的虚拟化,以便隔离进程和资源, 官方网站: https://linuxcontainers.org/

  1. Ubuntu 安装 lxc:
# apt install lxc lxd
Reading package lists... Done
Building dependency tree
Reading state information... Done
lxd is already the newest version (3.0.3-0ubuntu1~18.04.3).
lxc is already the newest version (3.0.3-0ubuntu1~18.04.1).
  1. 检查内核对 lcx 的支持状况,必须全部为 lcx
# lxc-checkconfig 
# lxc-create -t 模板名称 -n lcx-test
# lxc-create -t download --name alpine12 -- --dist alpine --release 3.9 --arch amd64
Setting up the GPG keyring
Downloading the image index
Downloading the rootfs
Downloading the metadata
The image cache is now ready
Unpacking the rootfs
---
You just created an Alpinelinux 3.9 x86_64 (20190630_13:00) container.

命令备注:
-t 模板: -t 选项后面跟的是模板,模式可以认为是一个原型,用来说明我们需要一个什么样的容器(比如容器里面需不需要有 vim, apache 等软件).模板实际上就是一个脚本文件(位于/usr/share/lxc/templates 目录),我们这里指定 download 模板(lxc-create 会调用 lxcdownload 脚本,该脚本位于刚说的模板目录中)是说明我们目前没有自己模板,需要下载官方的模板
–name 容器名称: 为创建的容器命名
– : --用来说明后面的参数是传递给 download 脚本的,告诉脚本需要下载什么样的模板
–dist 操作系统名称:指定操作系统
–release 操作系统: 指定操作系统,可以是各种 Linux 的变种
–arch 架构: 指定架构,是 x86 还是 arm,是 32 位还是 64 位

  1. 启动 lxc 容器
# lxc-start alpine12 
  1. 进入 lxc 容器
# lxc-attach alpine12 

容器内查看网络

~ # ifconfig
eth0    Link encap:Ethernet HWaddr 00:16:3E:DF:54:94
        inet addr:10.0.3.115 Bcast:10.0.3.255 Mask:255.255.255.0
        inet6 addr: fe80::216:3eff:fedf:5494/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
        RX packets:18 errors:0 dropped:0 overruns:0 frame:0
        TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:2102 (2.0 KiB) TX bytes:1796 (1.7 KiB)
lo      Link encap:Local Loopback
        inet addr:127.0.0.1 Mask:255.0.0.0
        inet6 addr: ::1/128 Scope:Host
        UP LOOPBACK RUNNING MTU:65536 Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

容器内查看内核

~ # uname -a
Linux alpine12 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018
x86_64 Linux

lxc 启动容器依赖于模板, 清华模板源:https://mirrors.tuna.tsinghua.edu.cn/help/lxc-images/

但是做模板相对较难, 需要手动一步步创构建文件系统、准备基础目录及可执行程序等,而且在大规模使用容器的场景很难横向扩展, 另外后期代码升级也需要重新从头构建模板,基于以上种种原因便有了 docker。

docker:

Docker 启动一个容器也需要一个外部模板但是较多镜像, docke 的镜像可以保存在一个公共的地方共享使用, 只要把镜像下载下来就可以使用,最主要的是可以在镜像基础之上做自定义配置并且可以再把其提交为一个镜像,一个镜像可以被启动为多个容器。

Docker 的镜像是分层的, 镜像底层为库文件且只读层即不能写入也不能删除数据,从镜像加载启动为一个容器后会生成一个可写层,其写入的数据会复制到容器目录, 但是容器内的数据在删除容器后也会被随之删除。
在这里插入图片描述

pouch:

https://www.infoq.cn/article/alibaba-pouch
https://github.com/alibaba/pouch

Docker 的优势:

快速部署: 短时间内可以部署成百上千个应用,更快速交付到线上。高效虚拟化:不需要额外的 hypervisor 支持,直接基于 linux 实现应用虚拟化,相比虚拟机大幅提高性能和效率。

节省开支: 提高服务器利用率,降低 IT 支出。

简化配置: 将运行环境打包保存至容器,使用时直接启动即可。快速迁移和扩展: 可夸平台运行在物理机、虚拟机、公有云等环境, 良好的兼容性可以方便将应用从 A 宿主机迁移到 B 宿主机, 甚至是 A 平台迁移到 B 平台。

Docker 的缺点:

隔离性: 各应用之间的隔离不如虚拟机彻底

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十三y

你的鼓励就是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值