我有一个在 AWS 中运行一些服务的 Ubuntu 服务器实例,我想在开发机器 (Mac) 上运行相同的设置。我一直在想办法,但遇到了一些问题。我会描述我做了什么以及我在哪里遇到了困难,但如果我走错了路,请告诉我,还有另一种更简单的方法。
我拍摄了整个 EBS 卷快照的 tarball(通过将其作为第二个卷安装到临时 EC2 实例)。然后我将 tarball 下载到我的 Mac,并将其导入为 Docker 映像:
docker import ~/Downloads/server.tar.gz
现在我可以使用启动docker容器
docker run -i -t 9a842a29 /bin/bash
但是 docker 容器无法启动我的服务。它们甚至没有显示在 下service --status-all
。
在研究过程中,我发现用于安装服务的 Docker 和 systemctl 存在一些问题。运行时systemctl
出现错误消息:
Failed to connect to bus: No such file or directory
我尝试使用以下方法解决这个问题https://github.com/gdraheim/docker-systemctl-replacement,但我没有看到任何改进:找不到我的服务,即使.service
文件存在于中/lib/systemd/system/
。
AWS 上有一些关于将 AMI 导出为 VM 的讨论,但据我所知,这仅适用于首先导入为 VM 的 AMI。
有没有办法让我的服务在 Docker 下运行?或者有没有其他方法可以虚拟化我的 AMI 或 tarball?