当前位置: 首页 > 知识库问答 >
问题:

更新容器后保存docker容器

宗政永望
2023-03-14

我是Docker的新人,我正在尝试创建/使用现有映像来启动我的应用程序。在阅读了几篇stackoverflow帖子和Docker文档后,我能够使用Docker容器启动我的应用程序。现在我正在寻找保存修改后的Docker容器的正确方法,以便我可以重用容器通过运行docker命令来启动我的应用程序。

我看到人们使用$docker提交来保存docker容器。如果我运行此命令,容器将保存在哪里?其他人可以下载我保存的容器吗?

我还计划将保存的docker容器部署到AWS云。

对此提出的任何建议或意见都将是有益的。

更新到帖子这是我用来下载和构建容器的dockerfile

FROM tomcat:7.0.82-jre8
RUN apt-get update && apt-get -y upgrade
WORKDIR /usr/local/tomcat
COPY /app.war /usr/local/tomcat/webapps/app.war
RUN unzip /usr/local/tomcat/webapps/app.war -d /usr/local/tomcat/webapps/app
RUN apt-get update && apt-get install -y dos2unix
EXPOSE 8080
COPY tomcat-users.xml /usr/local/tomcat/conf/
COPY config1.xml /usr/local/tomcat/webapps/app/conf/
COPY config2.properties /usr/local/tomcat/webapps/app/conf/properties/
COPY config4.properties /usr/local/tomcat/webapps/app/conf/

ENV JAVA_OPTS="-Xms2G -Xmx2G"
# Copy Entrypoint script in the container
COPY ./docker-entrypoint.sh / 
RUN dos2unix /docker-entrypoint.sh && apt-get --purge remove -y dos2unix && rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/docker-entrypoint.sh"]

共有2个答案

阮炯
2023-03-14

来自Docker文档

通常,最好使用Dockerfiles以文档化和可维护的方式管理图像。

...

提交操作将不包括装载在容器内的卷中包含的任何数据。

提交容器:

$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
c3f279d17e0a        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25 hours                            focused_hamilton

$ docker commit c3f279d17e0a  svendowideit/testimage:version3

f5283438590d

$ docker images

REPOSITORY                        TAG                 ID                  CREATED             SIZE
svendowideit/testimage            version3            f5283438590d        16 seconds ago      335.7 MB

正如您在示例中看到的,保存的图像存储在运行docker提交的机器中

师谦
2023-03-14

如果我运行这个命令,容器保存在哪里?

在本地计算机上。只需键入docker images,您就会看到它。

其他人可以下载我保存的容器吗?

不,因为它只在你的本地机器上。

但这不是你应该使用docker的方式!不要修改正在运行的容器!相反,请编写一个Dockerfile,并通过该Dockerfile构建您的图像。

 类似资料:
  • 我无法用redis数据库中的数据创建docker redis容器的图像。目前,我正在这样做: 很明显,我对一些基本的东西不太了解。docker commit不是从现有容器创建新映像吗? 好吧,我一直在挖掘。hub上的默认redis图像。docker使用一个数据卷,然后将其装入容器中的/data。为了在容器之间共享此卷,必须使用以下参数启动一个新容器: 请注意,参数的顺序很重要,否则docker r

  • 问题内容: 我试图了解Docker的来龙去脉,但我对保存映像的前景感到困惑。 我运行了基本的Ubuntu映像,安装了Anaconda Python和其他一些东西…那么,保存进度的最佳方法是什么?保存,提交,导出? 这些似乎都无法与VirtualBox一样工作,后者为您的虚拟机提供了一个明显的保存状态文件。 问题答案: 通常的方法至少是通过:将容器的状态冻结为新映像。 注:由于评论由anchovyl

  • 我已经创建了两个docker容器,并尝试在ubuntu、debian和一些包上安装一些应用程序,如-mc、ping、traceroute。。但每当我从集装箱里出来,我就会把里面的东西都弄丢。。是否有docker命令保存我的配置?

  • 我在官方docker网站上遵循了“开始”教程,一切都很顺利,直到我尝试删除容器。每次当我运行时 或 具有该 ID 的初始容器将停止或删除,但新容器出现并运行。我试图使用以下命令更新容器: 然而,这没有帮助。 这里是'docker info'命令结果: 和“docker inspect[container_id]”

  • 问题内容: 我有一个在docker-machine上运行的weblogic容器(正在使用docker toolbox在Windows 7上运行),并希望将日志从容器自动保存到Windows机器。 我知道我可以使用命令,但是,不是每次都将日志记录到Windows计算机上,而是有更好的方法将日志从容器保存到Windows计算机上的文件夹中吗? 问题答案: 请参阅“ Docker日志记录策略 ”,其中介

  • 问题内容: 我想使用docker-compose启动服务并保持容器运行,以便我可以通过“ docker inspect”获取其IP地址。但是,容器始终在启动后立即退出。 我试图在docker-compose.yml中添加“ command:[“ sleep”,“ 60”]“和其他内容,但是每当我添加带有” command:…“的行时,我都无法调用” docker-compose up“因为我将收到