当前位置: 首页 > 知识库问答 >
问题:

Canonical LXD容器软件和docker容器软件在特性上有什么区别?

顾永福
2023-03-14

我安装了docker,但ubuntu产品似乎是开源软件,不会打破我的口袋本做同样的事情,但docker似乎更兼容谷歌云?我不确定LXD,但我在安装帮助指南的包管理器中安装它,但我不确定部署或如何在ubuntu云和谷歌云上部署模型。我希望我能在某个地方找到图形关系。

共有1个答案

经兴安
2023-03-14

主要区别在于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发行版)。然后,我在系统容器中得到一个shell并更新包列表。随后,我安装nginx。我从容器注销并检查容器的IP地址。最后,我从主机访问网站。如果我在主机上运行火狐,我可以从火狐访问网络服务器。

$ 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

与虚拟机一样,您也可以使用系统容器从LAN获取IP地址。还有许多其他东西,比虚拟机轻得多。

 类似资料:
  • 我想要主持我的第一个基于Java的网站。我了解到有基于云的服务提供网站托管。但是也有一些未知的术语,比如已经可用的容器和Docker。我对GlassFish,Tomcat等容器知之甚少,但对Docker不太了解。那么码头工人到底是什么?

  • 在使用Docker时,我们从一个基图像开始。我们启动它,创建更改,这些更改保存在图层中,形成另一个图像。 所以最终我有了一个用于我的PostgreSQL实例的映像和一个用于我的web应用程序的映像,对这些映像的更改将持续保持。 什么是容器?

  • 本文向大家介绍展示组件和容器组件有什么区别?相关面试题,主要包含被问及展示组件和容器组件有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 展示组件(Presentational Component) 关注页面的展示效果(外观) 内部可以包含展示组件和容器组件,通常会包含一些自己的DOM标记和样式(style) 通常允许通过this.props.children方式来包含其他组件。 对应用程序

  • 我刚接触Spring,我读到BeanFactory也称为基本IOC,ApplicationContext称为高级IOC。 我读到: BeanFactory容器是为DI提供基本支持的最简单的容器,由org.springframework.beans.factory.BeanFactory接口定义。BeanFactory和相关接口,如BeanFactoryAware、InitializingBean、

  • 问题内容: 使用Docker时,我们从基础映像开始。我们启动它,创建更改,并将这些更改保存在形成另一个映像的层中。 因此,最终我为自己的PostgreSQL实例提供了一个映像,为我的Web应用程序提供了一个映像,对它们的更改将继续保留。 什么是容器? 问题答案: 图像的实例称为容器。您有一张图像,该图像是您描述的一组图层。如果启动此映像,则该映像具有正在运行的容器。您可以有多个运行中的同一图像容器

  • 问题内容: Docker中的容器和映像之间有什么区别?在《Docker入门》教程中,这两个术语都被使用,但是我不明白它们之间的区别。 有人可以说明一下吗? 问题答案: 图像是实时容器的固定不变快照。容器正在运行(或停止)某些图像的实例。 从名为“ubuntu”的基本映像开始。让我们在ubuntu映像中交互式运行bash并创建一个文件。我们将使用和标志为我们提供一个交互式bash shell。 不要