docker exec 命令可能就是你要找的。p>
这将允许您在现有容器中运行任意命令。
例如:
docker exec -it <mycontainer> bash
当然,您运行的任何命令都必须存在于容器文件系统中。
#docker cp >>>> Copy files/folders between a container and the local filesystem
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
复制整个文件夹:
docker cp ./src/build b081dbbb679b:/usr/share/nginx/html
注意——这将复制容器的…/nginx/html/目录中的构建目录以仅复制文件夹中存在的文件:
docker cp ./src/build/ b081dbbb679b:/usr/share/nginx/html
注意 - 这将复制容器的 …./nginx/html/ directory 中的构建目录的内容
Docker 存储选项:
卷存储在由 Docker 管理的主机文件系统的一部分(Linux 上的 /var/lib/docker/volumes/)。非 Docker 进程不应修改文件系统的这一部分。卷是在 Docker 中持久化数据的最佳方式。
创建卷时,它会存储在 Docker 主机上的目录中。当您将卷挂载到容器中时,此目录就是挂载到容器中的目录。这类似于绑定挂载的工作方式,只是卷由 Docker 管理并且与主机的核心功能隔离。
一个给定的卷可以同时挂载到多个容器中。当没有正在运行的容器使用卷时,卷仍然可供 Docker 使用,并且不会自动删除。您可以使用 docker volume prune 删除未使用的卷。
当您挂载一个卷时,它可能是命名的或匿名的。匿名卷在首次挂载到容器时没有明确的名称,因此 Docker 为它们提供了一个随机名称,该名称保证在给定的 Docker 主机中是唯一的。除了名称之外,命名卷和匿名卷的行为方式相同。
卷还支持使用卷驱动程序,它允许您将数据存储在远程主机或云提供商上,以及其他可能性。
绑定挂载可以存储在主机系统的任何位置。它们甚至可能是重要的系统文件或目录。 Docker 主机或 Docker 容器上的非 Docker 进程可以随时修改它们。
从 Docker 早期就可用。与卷相比,绑定挂载的功能有限。当您使用绑定挂载时,主机上的文件或目录会挂载到容器中。文件或目录由其在主机上的完整路径引用。该文件或目录不需要已经存在于 Docker 主机上。如果它尚不存在,则按需创建。绑定挂载非常高效,但它们依赖于具有特定目录结构的主机文件系统。如果您正在开发新的 Docker 应用程序,请考虑改用命名卷。您不能使用 Docker CLI 命令直接管理绑定挂载。
使用绑定挂载的一个副作用是,无论好坏,您都可以通过容器中运行的进程更改主机文件系统,包括创建、修改或删除重要的系统文件或目录。这是一种强大的能力,可能会产生安全隐患,包括影响主机系统上的非 Docker 进程。
tmpfs 挂载仅存储在主机系统的内存中,永远不会写入主机系统的文件系统。
tmpfs 挂载不会持久保存在磁盘上,无论是在 Docker 主机上还是在容器内。它可以在容器的生命周期内被容器使用,用于存储非持久状态或敏感信息。例如,在内部,swarm 服务使用 tmpfs 挂载将秘密挂载到服务的容器中。
如果你需要指定卷驱动选项,你必须使用--mount。
-v 或 --volume:由三个字段组成,以冒号字符 (:) 分隔。字段必须按正确的顺序排列,每个字段的含义不是很明显。
o 在命名卷的情况下,第一个字段是卷的名称,并且在给定的主机上是唯一的。对于匿名卷,省略第一个字段。
o 第二个字段是文件或目录将在容器中挂载的路径。
o 第三个字段是可选的,是以逗号分隔的选项列表,例如 ro。这些选项将在下面讨论。
• --mount:由多个键值对组成,以逗号分隔,每个都包含一个= 元组。 --mount 语法比 -v 或 --volume 更冗长,但键的顺序并不重要,标志的值更容易理解。
o 挂载类型,可以是 bind、volume 或 tmpfs。本主题讨论卷,因此类型始终为卷。
o 坐骑的来源。对于命名卷,这是卷的名称。对于匿名卷,此字段被省略。可以指定为 source 或 src。
o 目标将文件或目录安装在容器中的路径作为其值。可以指定为目的地、dst 或目标。
o readonly 选项(如果存在)会导致绑定挂载以只读方式挂载到容器中。
o 可以多次指定的volume-opt 选项采用由选项名称及其值组成的键值对。