首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将systemd-nspawn与--网络-veth和--port ( -n和-p)一起使用?

如何将systemd-nspawn与--网络-veth和--port ( -n和-p)一起使用?
EN

Stack Overflow用户
提问于 2017-06-03 07:22:38
回答 1查看 2.6K关注 0票数 2

我奔跑;

代码语言:javascript
复制
systemd-nspawn -n -p 80:80 -bD /path/to/httpd-container

在容器中,httpd可以工作。但是,从主机访问,它不能访问。此外,下面的工作没有网络选项;

代码语言:javascript
复制
systemd-nspawn -bD /path/to/httpd-container

我需要使用选项-n--network-veth-p--port

EN

回答 1

Stack Overflow用户

发布于 2017-06-17 17:18:49

这里也有同样的问题;为了帮助其他人从头开始复制:

准备工作

从互联网上拉出一张平凡的图片

代码语言:javascript
复制
machinectl pull-raw --verify=no https://download.fedoraproject.org/pub/fedora/linux/releases/25/CloudImages/x86_64/images/Fedora-Cloud-Base-25-1.3.x86_64.raw.xz

测试1

在不带联网选项的容器内运行服务器

代码语言:javascript
复制
systemd-nspawn -M Fedora-Cloud-Base-25-1.3.x86_64.raw nc -l localhost 10000

在另一个窗口中

代码语言:javascript
复制
echo hello | nc localhost 10000

作品

测试2

启用内网和端口映射,将主机端口10000映射到容器端口20000

代码语言:javascript
复制
systemd-nspawn -M Fedora-Cloud-Base-25-1.3.x86_64.raw --private-network -p 10000:20000 nc -l localhost 20000

但是后来

代码语言:javascript
复制
echo hello | nc localhost 10000

结果:

代码语言:javascript
复制
Ncat: Connection refused.

为什么它是错误的

我几乎会期望完全相反的结果;在任何情况下,第二个测试都是我想要开始工作的用例。我真的需要我的容器是网络隔离的,并且在任何情况下都需要端口重定向,因为所有容器都在同一个端口上运行它们的服务,这些服务需要重定向到主机端的一系列端口。

我尝试过的

将选项--network-interface=eno1 (我的公共接口)添加到混搭中没有任何帮助

让我困惑的是什么?

我的主机在禁用selinux的情况下运行fedora25;当我启动容器时,我仍然可以看到这些消息,我认为它们是无关的,但它们是相关的吗?

代码语言:javascript
复制
mount(/tmp/nspawn-root-tR1Tr0/sys/fs/selinux) failed, ignoring: No such file or directory
mount(/tmp/nspawn-root-tR1Tr0/sys/fs/selinux) failed, ignoring: Invalid argument
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44338686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档