在“exec”之后将更改应用到 docker 容器

med*_*oot 3 docker kubernetes

我已经成功地使用 shell 进入一个正在运行的 docker 容器

docker exec -i -t 7be21f1544a5 bash

我对一些 json 文件进行了一些更改,并希望应用这些更改以反映在线。

我是初学者,尝试过重启、挂载,但没有成功。使用 docker run 挂载时必须替换哪些字符串?

有在线样本吗?

CONTAINER ID: 7be21f1544a5
IMAGE: gater/web
COMMAND: "/bin/sh -c 'nginx'"
CREATED: 4 weeks ago
STATUS: Up 44 minutes
PORTS: 443/tcp, 172.16.0.1:10010->80/tcp
NAMES: web
Run Code Online (Sandbox Code Playgroud)

Ric*_*ico 5

您可以运行创建一个 Dockefile 并运行:

docker build . 
Run Code Online (Sandbox Code Playgroud)

Dockerfile来自您所在的同一目录。

或者你可以运行:

docker run -i -t <docker-image> bash
Run Code Online (Sandbox Code Playgroud)

或者(如果您的容器已经在运行)

docker exec -i -t <container-id> bash
Run Code Online (Sandbox Code Playgroud)

一旦您进入 shell,请进行所有您想要的更改。然后运行:

docker commit <container-id> myimage:0.1
Run Code Online (Sandbox Code Playgroud)

您将在本地拥有一个新的 docker 镜像myimage:0.1。如果您想推送到 docker 存储库(dockerhub 或您的私有 docker 存储库),您可以运行:

docker push myimage:0.1
Run Code Online (Sandbox Code Playgroud)