第一次尝试Docker并遇到很多问题。将Docker与Ubuntu容器一起安装。不知道它不是net-tools,vim,nano等基本必备工具所没有的。安装了我需要的必要工具,测试了它是否有效,并称之为一天。今天,当运行容器时,它又回到了早期阶段,所有已安装的软件包都消失了。这应该发生吗?如何在容器中永久安装软件包?
注意:我借助安装脚本安装了Docker -CE版本。
您误用了VM的容器。容器只是为运行特定进程而量身定制的网络和文件系统泡沫。它带有所有软件依赖项,因此仅需要Linux内核。
很少使用像Ubuntu这样的Docker映像。您可以使用来定制它Dockerfile
(请参阅docker build
命令)。Dockerfile用于:
RUN apt-get install python3 python3-pip
,RUN pip install requests numpy
COPY application.py /app/
。这些文件经常与Dockerfile一起保存。ENTRYPOINT ["/usr/bin/python3","/app/application.py"]
在的末尾docker build
,您有一个可运行的Docker映像,可以执行您的应用程序。
如果您对容器进行了调整,则可以使用来将其状态另存为映像docker commit
,但这是不明智的做法,因为它不能确保可重复性:如果需要升级软件,通常可以使用Dockerfile来重建容器,因此最好确保构建最终容器只需要Dockerfile及其配套文件。这也使容器更难以共享,您必须导出整个映像,而不仅仅是发送Dockerfile和代码/配置。
严重使用时,Dockerfile及其伴随文件(配置...)在Git存储库中进行版本控制,并使用由集成链生成的可执行文件。
通常,经常尝试使容器保持尽可能小。有很小的足迹分布的Docker映像。Ubuntu是很多无用的包and,而Debian通常也一样。也有带有预装软件(Apache,nginx,MySQL ...)的专用映像。
最后,您可能想知道在容器中创建的文件会发生什么情况……默认情况下,它们在容器本地,如果删除了容器实例(docker rm
命令),它们就会丢失。但是,启动容器时,可以将容器的某些文件/目录绑定到主机上的文件/目录,因此在容器外部具有持久性存储。您也可以使用“体积图像”。
容器非常有用,但必须正确使用...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句