将外部数据导入我的Linux容器?

将外部数据导入我的Linux容器?

我正在尝试使用 LXC 分离我的数据库和 PHP 应用程序。

我目前在将我的代码部署到其中一个容器时遇到一些问题 - 我不明白这应该如何工作。

我当前的设置是一个 VPS,DeployHQ 通过 SSH 连接到它 - 从 GitHub 上传应用程序并运行一些命令。

但是这个解决方案似乎无法通过我的容器实现——所以我的问题是,我现在该怎么办?

我可以将代码发送到主机 - 但是如何将代码发送到我的容器,同时仍然确保来宾的用户权限正确?

答案1

最明显的方法是让 LXC 的行为与您的 VPS 一样。为此,您可能需要在主机上设置 NAT 规则,将外部端口转发到 LXC 容器的端口 22。

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2022 -j DNAT --to 10.0.3.123:22

(将 eth0 上的端口 2022 转发到 IP 为 10.0.3.123 的容器的端口 22 上)。

另一种方法是通过主机文件系统执行此操作,有两种解决方案:

  • 直接复制到 /var/lib/lxc/CONTAINER/rootfs/...
  • 在 /var/lib/lxc/CONTAINER/fstab 中设置主机上的路径到容器中的路径的绑定挂载。(例如,“/srv/site srv/site none bind,ro 0 0”将设置主机上的 /srv/site 到容器中的 /srv/site 的只读绑定挂载。这两个路径必须在容器启动之前存在。

在这两种情况下,您都需要确保所有权与容器中的所有权相匹配,因此您可能希望主机上的路径的任何更新都执行正确的 chown -R 操作。

相关内容