为了账号安全,请及时绑定邮箱和手机立即绑定

docker exec 报错,怎么回事?

docker exec 报错,怎么回事?

吃鸡游戏 2019-01-31 09:07:45
docker exec 报错,怎么回事
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

  有一件事触动了我。当我解释和回答Docker初学者提出的问题时,我发现其中一个很普遍,那就是当老的解决方案仍然可以解决现有问题时,大家又在寻找新的解决方案。   工程师有一个癖好,就是忘记他们所知道的,然后他们可以不用做太多改变,而在一个新的范例中很大程度上运用这些已经掌握的知识。所以最终,这篇博客有三个目的:   给你一个例子使用Docker执行使用   提醒你,你在docker到来之前所获得的知识仍然是有用的   帮助你构建将这个知识放到容器中的思维   真的,这篇文章可以被称为备份RDBMS和Docker,但我需要一些具体的例子。因为这篇文章是关于PostgreSQL触发的问题,我决定就这样做。   这里的情况。有一个PostgreSQL服务器运行在一个Docker容器,和你非常满意的这两个很棒的软件的结合。但是你是一个聪明的人,你知道,迟早,您将需要备份的数据库。也许硬件将会失败,或者新的实习生将会失败,你永远不会知道的。所以你决定定期备份数据库。   但是如何做到这一点。PostgreSQL运行在Docker中,并没有明显的方式访问数据。   问题可以归结为对您的PostgreSQL实例运行pg_dump,和你有三种方式实现这一目标。   根据您的版本的Docker,使用nsenter或Docker执行以获得shell在容器内,并将您的数据(使用pg_dump)转储到一个共享卷(postgres容器运行PostgreSQL的名称):   docker exec postgres pg_dump -h db -f /shared/backup.sql   但我们可以做的更好,对吗?理想的流程将涉及能够连接到PostgreSQL无需一个shell的容器。有两种方法可以做到这一点。   首先,用容器的一切方法。你建立一个pg_dump容器(这是一个容器,pg_dump作为它的入口点),并将其链接到PostgreSQL容器在运行时。这里有一个 pg_dump容器的Dockerfile   用 docker build 构建  注意:建立一个特定的容器pg_dump不是强制性的。Damien如上所述的评论,你重新使用 包含 pg_dump在内的PostgreSQL镜像一点儿问题都没有。我们在这里建立一个容器是因为要练习。   运行:  在你的PostgreSQL postgres的容器中运行。



查看完整回答
反对 回复 2019-02-28
?
慕容3067478

TA贡献1773条经验 获得超3个赞

docker exec -it web-server bash 建议把nginx , PHP-fpm两个服务不要放在同一个容器 可以参考这个docker部署nginx,php-fpm

查看完整回答
反对 回复 2019-02-28
  • 2 回答
  • 0 关注
  • 597 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信