如何在更改我的应用程序中的几行代码后更新 Docker 图像?
How can I update Docker image after changing few lines of code in my app?
Dockerfile 我刚刚在我的应用程序工作目录中使用以下命令构建了一个 Docker 图像:
docker build -t imagename:latest .
Docker 图像在几分钟后成功构建,应用程序也是 运行,一旦我使用以下命令:
docker run -p portnumber:portnumber imagename:latest
但现在我想更新我的应用程序代码库中的 2 行代码。假设我添加了代码并想查看我的应用程序是否正常工作,那么我该怎么做呢?我需要按照以下步骤操作吗?
1. Delete the Docker image
2. Rebuild the image using the above command
3. See if the app is working or not using the "docker run" command?
我想知道如何更新我的 Docker 图片?我的 Docker 文件是一样的,不会有任何变化。我不想再次重建整个 Docker 图像,因为最初,所有包的大小都在 2GB 左右。谁能帮我下一步该怎么做?提前致谢。
OS: Ubuntu
应用框架:Streamlit
重建 docker 图像可能没有您想的那么麻烦!
构建镜像时,Dockerfile 中包含命令 运行、COPY 或 ADD 的每一行都会成为镜像的一层。当您重建图像时,应该只重建 Dockerfile 的更新行。如果您不删除旧图像以便它在缓存中,那就是。
如果您尝试一下,您应该只会看到一层或多层图像在更新(及其下方的层)
另一种方法是不将代码放入构建中,而是在运行时将其插入带有卷的容器中。根据您的用途,它可能是某种东西。但这是一个完全不同的用例,可能不适用。
虽然您具体询问了如何更新(重建)您的 docker 图像,但我猜您实际上需要不同的解决方案。
如果您正在开发应用程序的 docker 化版本(这很好),则在代码中所做的每次更改都重建图像是不切实际的。
一种更好、更常见的方法是将您的本地文件夹装载到容器中,这样 运行 容器和您的本地计算机实际上共享一个文件夹。
这样您只需编辑您的代码,它就会立即反映在容器中。
因此,您的 docker run
命令可能如下所示:
$ docker run -v $PWD:/path/to/app/in/container -p PORT:PORT IMAGE_NAME
Dockerfile 我刚刚在我的应用程序工作目录中使用以下命令构建了一个 Docker 图像:
docker build -t imagename:latest .
Docker 图像在几分钟后成功构建,应用程序也是 运行,一旦我使用以下命令:
docker run -p portnumber:portnumber imagename:latest
但现在我想更新我的应用程序代码库中的 2 行代码。假设我添加了代码并想查看我的应用程序是否正常工作,那么我该怎么做呢?我需要按照以下步骤操作吗?
1. Delete the Docker image
2. Rebuild the image using the above command
3. See if the app is working or not using the "docker run" command?
我想知道如何更新我的 Docker 图片?我的 Docker 文件是一样的,不会有任何变化。我不想再次重建整个 Docker 图像,因为最初,所有包的大小都在 2GB 左右。谁能帮我下一步该怎么做?提前致谢。
OS: Ubuntu
应用框架:Streamlit
重建 docker 图像可能没有您想的那么麻烦!
构建镜像时,Dockerfile 中包含命令 运行、COPY 或 ADD 的每一行都会成为镜像的一层。当您重建图像时,应该只重建 Dockerfile 的更新行。如果您不删除旧图像以便它在缓存中,那就是。
如果您尝试一下,您应该只会看到一层或多层图像在更新(及其下方的层)
另一种方法是不将代码放入构建中,而是在运行时将其插入带有卷的容器中。根据您的用途,它可能是某种东西。但这是一个完全不同的用例,可能不适用。
虽然您具体询问了如何更新(重建)您的 docker 图像,但我猜您实际上需要不同的解决方案。
如果您正在开发应用程序的 docker 化版本(这很好),则在代码中所做的每次更改都重建图像是不切实际的。
一种更好、更常见的方法是将您的本地文件夹装载到容器中,这样 运行 容器和您的本地计算机实际上共享一个文件夹。
这样您只需编辑您的代码,它就会立即反映在容器中。
因此,您的 docker run
命令可能如下所示:
$ docker run -v $PWD:/path/to/app/in/container -p PORT:PORT IMAGE_NAME