docker之旅 8.docker的拷贝操作,从docker拷贝文件到宿主机,从宿主机拷贝文件到docker

从宿主机拷贝文件到 docker容器

Docker 的 cp 命令用于在 Docker 主机和容器之间复制文件或目录。你可以使用这个命令将文件从容器复制到主机,或者将文件从主机复制到容器。

为了从本机(Docker 主机)的 /home/henry/workspace/openPort.sh 文件拷贝到容器 b8f3107e7f5c 的 /home/henry_mysql_docker_path 目录下面,你可以使用以下命令:

 
docker cp /home/henry/workspace/openPort.sh b8f3107e7f5c:/home/henry_mysql_docker_path/

这条命令的含义如下:

  • docker cp:表示执行 Docker 的文件复制命令。
  • /home/henry/workspace/openPort.sh:这是源文件的完整路径,它位于 Docker 主机的文件系统中。
  • b8f3107e7f5c:这是目标容器的 ID 或名称。
  • :/home/henry_mysql_docker_path/:这是目标路径,以冒号 : 分隔,前面为空表示主机上的当前目录(在这个例子中我们实际上指定了完整路径,所以冒号前的部分被忽略了),后面是容器内的目标目录。

请注意以下几点:

  1. 确保容器 b8f3107e7f5c 正在运行。如果容器未运行,则无法将文件复制到容器内。
  2. 确保你有足够的权限来读取主机上的 /home/henry/workspace/openPort.sh 文件。
  3. 确保在容器内 /home/henry_mysql_docker_path/ 目录存在,或者 Docker 有足够的权限在容器内创建这个目录。如果目录不存在且 Docker 没有权限创建它,那么复制操作将会失败。
  4. 如果目标路径在容器内已经是一个文件而不是目录,那么复制操作将会失败,除非你使用不同的目标文件名来避免冲突。

从 docker 拷贝文件到宿主机

我想把docker b8f3107e7f5c 下面的 /home/henry_mysql_docker_path/openPort.sh 文件拷贝到 宿主机的 /home/henry/workspace 目录,并且命名为 openPort3.sh.给出详细的docker命令,并解释命令

为了从 Docker 容器 b8f3107e7f5c 的 /home/henry_mysql_docker_path/openPort.sh 拷贝文件到宿主机的 /home/henry/workspace 目录,并将文件重命名为 openPort3.sh,你可以使用以下 docker cp 命令:

docker cp b8f3107e7f5c:/home/henry_mysql_docker_path/openPort.sh /home/henry/workspace/openPort3.sh

 

详细解释如下:

  • docker cp:这是 Docker 的复制命令,用于在 Docker 容器和宿主机之间复制文件或目录。

  • b8f3107e7f5c:/home/henry_mysql_docker_path/openPort.sh

    • b8f3107e7f5c 是容器的 ID 或名称。
    • /home/henry_mysql_docker_path/openPort.sh 指定了容器内要复制的文件路径。
  • /home/henry/workspace/openPort3.sh

    • /home/henry/workspace/ 是宿主机上的目标目录。
    • openPort3.sh 是你希望在宿主机上命名的新文件名。

请注意,这个命令会将容器内的 openPort.sh 文件复制到宿主机的 /home/henry/workspace 目录下,并将其重命名为 openPort3.sh。如果 /home/henry/workspace 目录不存在,Docker 不会为你创建这个目录,命令会失败。因此,请确保该目录在执行命令前已经存在。

 

posted @ 2024-04-29 06:13  He_LiangLiang  阅读(339)  评论(0编辑  收藏  举报