從宿主機拷貝文件到 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/
:這是目標路徑,以冒號:
分隔,前面爲空表示主機上的當前目錄(在這個例子中我們實際上指定了完整路徑,所以冒號前的部分被忽略了),後面是容器內的目標目錄。
請注意以下幾點:
- 確保容器
b8f3107e7f5c
正在運行。如果容器未運行,則無法將文件複製到容器內。 - 確保你有足夠的權限來讀取主機上的
/home/henry/workspace/openPort.sh
文件。 - 確保在容器內
/home/henry_mysql_docker_path/
目錄存在,或者 Docker 有足夠的權限在容器內創建這個目錄。如果目錄不存在且 Docker 沒有權限創建它,那麼複製操作將會失敗。 - 如果目標路徑在容器內已經是一個文件而不是目錄,那麼複製操作將會失敗,除非你使用不同的目標文件名來避免衝突。
從 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 不會爲你創建這個目錄,命令會失敗。因此,請確保該目錄在執行命令前已經存在。