如何从服务器上的 docker 容器恢复网站?

如何从服务器上的 docker 容器恢复网站?

免责声明:我对 Docker 没有任何实际了解。我之前从未使用过它。

我的公司刚刚为客户接管了一个网站。之前的开发人员已经无法使用,客户也没有技术人员。我们无法(也不会)访问任何以前的源代码控制、资产或流程。我们只能通过 SSH 访问生产服务器。

当源代码和数据库位于 Docker 容器中时,如何从服务器中拉取源代码和数据库?是否可以对 Docker 容器进行逆向工程以供我们的开发人员使用?

答案1

好的部分是这非常简单!

因此您可以通过以下方式查看所有正在运行的容器

docker ps

获得所需容器的 ID 后,你可以运行

docker exec -it DockerContainerID sh

这会将你带入容器的 shell,找到代码后,你可以通过以下命令将其复制到主机

docker cp DockerContainerID:/path/on/container ./localdir

然后您可以将其放到本地位置并进入源代码控制。

要获取数据库,您可以将数据库转储到容器内,然后使用docker cp命令获取备份,然后将其导入到其他地方。

答案2

Mike 的回答很有帮助。我只想补充几点。您还可以检查容器是否有任何卷挂载点。通常,容器在主机上挂载了用于数据目录的卷(例如 /var/www/html)。因此,您可以直接从主机复制数据,而无需从容器中提取数据。

docker inspect container_ID | grep -i -A 10 bind
"Binds": [
        "/webdata:/var/www/html:rw"
       ],

相关内容