我该如何使用Postgresql docker镜像/容器?
我是码头工人的新手.我仍然试图绕过这一切.
我正在构建一个节点应用程序(REST api),使用Postgresql来存储我的数据. 我花了几天时间学习码头工具,但我不确定我是否按照我应该的方式做事. 所以这是我的问题: >我正在使用官方docker postgres 9.5映像作为基础来构建我自己的(我的Dockerfile只在其上添加了plpython,并安装了一个自定义python模块以便在plpython存储过程中使用).我创建了我的容器作为postgres图像文档的建议: docker run –name some-postgres -e POSTGRES_PASSWORD = mysecretpassword -d postgres 在我停止容器之后,我无法使用上面的命令再次运行它,因为容器已经存在.所以我开始使用docker start而不是docker run.这是正常的做事方式吗?我一般会在第一次使用docker run并且每隔一段时间启动docker吗? 谢谢 编辑:加入我的困惑,我刚刚从debian官方图片中运行了一个新容器(没有Dockerfile,只有docker run -i -t -d -name debtest debian / bin / bash).随着容器在后台运行,我使用docker attach debtest连接到它,然后继续apt-get install postgresql.一旦安装,我运行(仍然从容器内)psql并在默认的postgres数据库中创建一个表,并用1个记录填充它.然后我退出shell,容器自动停止,因为shell不再运行了.我使用docker start debtest启动容器,然后附加到它,最后再次运行psql.我发现自第一次运行以来一切都持续存在.安装了Postgresql,我的桌子就在那里,而且我所插入的记录也在那里.我真的很困惑为什么我需要一个VOLUME来保存数据,因为这个快速测试没有使用一个,所有的东西都可以很好地工作.我在这里错过了什么吗? 再次感谢
1.
正确.你将它命名为(–name some-postgres),因此在开始新的之前,必须删除旧的,例如docker rm -f some-postgres
不,这对码头工作者来说并不正常. Docker进程容器通常应该是ephemeral,很容易丢弃并重新开始. >
那是因为你正在重用同一个容器.删除容器,数据消失了. >
是的,这是通过为不同的问题分别设置容器的好方法.这在许多情况下都很方便,例如,当您需要升级postgres基础映像而不丢失数据时(特别是在数据容器开始发挥作用的情况下). >
熟悉docker基础知识后,您可以查看Docker compose或类似的工具,这些工具可以帮助您更轻松地运行多容器应用程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |