我已经安装了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管理命令,因此可以自由地测试所需的任何命令。就像虚拟机一样
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地址。还有很多其他的东西,比虚拟机轻量级得多。