在更新容器后保存docker容器

我是一个新的蜜蜂到Docker,我正尝试创build/使用现有的图像来调出我的应用程序。 在阅读几个stackoverflow文章和Docker文档之后,我可以使用Docker容器调出我的应用程序。 现在我正在寻找正确的方式来保存修改的Docker容器,以便我可以通过运行docker命令来重新使用容器来启动我的应用程序。

我看到人们使用$ docker commit来保存docker容器。 如果我运行这个命令,容器被保存在哪里? 会有其他人能够下载我保存的容器?

我正在计划将保存的Docker容器部署到AWS云。

任何build议或意见,这将是有益的。

更新到post这里是我用来下载和build立容器的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"] 

If i run this command, where does the container gets saved ?

在你的本地机器上。 只需inputdocker images ,你会看到它。

will anybody else able to download my saved container ?

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


但是,这不是你应该如何使用docker的方式! 不要修改正在运行的容器! 相反,写一个Dockerfile并通过这个Dockerfile来构build你的镜像。

从Docker文档

一般来说,最好使用Dockerfiles来以可logging和可维护的方式pipe理你的图像。

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

提交一个容器:

 $ 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 commit的机器中