免责声明:我没有Docker的实际知识。 我从来没有用过它。
我的公司刚接手一个客户的网站。 以前的开发人员是不可能的,客户没有技术人员。 我们不会(也不会)访问任何以前的源代码pipe理,资产或stream程。 我们只能通过SSH访问生产服务器。
当它在Docker容器中时,我怎样才能从服务器上取得源代码和数据库? 是否有可能逆向工程Docker容器供我们的开发人员使用?
好的部分是这很容易!
所以你可以查看所有正在运行的容器
docker ps
一旦你有你需要的容器的ID,你可以运行
docker exec -it DockerContainerID sh
这将把你放入容器的shell,一旦你find代码,你可以通过下面的命令把它复制到主机
docker cp DockerContainerID:/path/on/container ./localdir
然后你可以把它带到当地,并进入源代码pipe理。
要获取数据库,您可以将数据库转储到容器中,然后使用docker cp命令将备份从其他位置导入。
Mike给出的答案非常有帮助。 只是想补充一点。 您还可以检查容器是否有任何卷装入点。 一般来说容器已经在主机上为数据目录安装了卷(例如/var/www/html)。 因此,您可以直接从主机复制数据,而无需从容器中提取数据。
docker inspect container_ID | grep -i -A 10 bind "Binds": [ "/webdata:/var/www/html:rw" ],