Canonical LXD容器软件和docker容器软件在功能上的主要区别是什么?



我已经安装了docker,但ubuntu产品似乎是开源软件,并没有打破我的口袋书做同样的事情,但docker似乎更兼容谷歌云?我不确定LXD,但我正在安装它在包管理器与安装帮助指南,但我不确定部署或如何部署模型在ubuntu云与谷歌云。我希望我能在某处找到一个图形关系。

主要区别在于Docker提供应用程序容器,而LXD提供系统容器

应用程序容器是一个容器,它可以帮助你运行应用程序、网络服务或类似的东西。当你完成应用程序后,Docker就会终止。

使用LXD,您可以创建系统容器,这与虚拟机非常相似。系统容器是一个Linux发行版运行时,当您启动它时,您选择的Linux发行版正在启动。它会一直运行,直到你关闭它。与VM不同,系统容器不运行自己的Linux内核;它重用主机的Linux内核。即使你在你的Ubuntu主机上启动了一个Fedora系统容器,Fedora系统容器也是在Ubuntu Linux内核上运行的(多亏了Linux内核的稳定API)。

下面是一个创建系统容器,安装nginx,然后访问web服务器的示例。如果你要用Docker做这些,你需要创建或找到一些Dockerfile。由于使用的是传统的Linux管理命令,因此可以自由地测试所需的任何命令。就像虚拟机一样

下面我用Ubuntu 20.04(支持所有主要的Linux发行版)创建了一个名为mycontainer的系统容器。然后,我在系统容器中获得一个shell并更新包列表。随后,我安装了nginx。退出容器,查看容器的IP地址。最后,我从主机访问网站。如果我在主机上运行Firefox,我可以从Firefox访问web服务器。
$ lxc launch ubuntu:20.04 mycontainer
Creating mycontainer
Starting mycontainer
$ lxc shell mycontainer
root@mycontainer:~# apt update && apt install -y nginx
...
root@mycontainer:~# lsof -i :www
COMMAND  PID     USER   FD   TYPE DEVICE SIZE NODE NAME
nginx   1470     root    6u  IPv4 297609       TCP *:http (LISTEN)
nginx   1470     root    7u  IPv6 297610       TCP *:http (LISTEN)
nginx   1471 www-data    6u  IPv4 297609       TCP *:http (LISTEN)
nginx   1471 www-data    7u  IPv6 297610       TCP *:http (LISTEN)
nginx   1472 www-data    6u  IPv4 297609       TCP *:http (LISTEN)
nginx   1472 www-data    7u  IPv6 297610       TCP *:http (LISTEN)
nginx   1473 www-data    6u  IPv4 297609       TCP *:http (LISTEN)
nginx   1473 www-data    7u  IPv6 297610       TCP *:http (LISTEN)
nginx   1474 www-data    6u  IPv4 297609       TCP *:http (LISTEN)
nginx   1474 www-data    7u  IPv6 297610       TCP *:http (LISTEN)
root@mycontainer:~# logout
$ lxc list mycontainer
+-------------+---------+--------------------+------+-----------+-----------+
|    NAME     |  STATE  |        IPV4        | IPV6 |   TYPE    | SNAPSHOTS |
+-------------+---------+--------------------+------+-----------+-----------+
| mycontainer | RUNNING | 10.10.10.92 (eth0) |      | CONTAINER | 0         |
+-------------+---------+--------------------+------+-----------+-----------+
$ curl 10.10.10.92
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
...
$ lxc stop mycontainer
$ lxc delete mycontainer

就像虚拟机一样,您也可以让系统容器从局域网获取IP地址。还有很多其他的东西,比虚拟机轻量级得多。

相关内容

最新更新