docker 中怎么拷贝东西到镜像,和拷贝出来
容器可以认为是虚拟机,宿主机认为是本地主机。
1、从容器里面拷文件到宿主机
- 在宿主机里面执行以下命令
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
root@sz-H81U:/home/sz# docker cp -a fe5282e395eb:/demo_ws/ /home/sz/code/
root@sz-H81U:/home/sz# cd code/
root@sz-H81U:/home/sz/code# ls
a.txt demo_ws
参数解释:
- 容器ID为 :
fe5282e395eb
,查找方法见后:docker ps -a
- 要从容器里面拷贝的文件路径为:
/demo_ws
, 现在要将demo_ws
所有文件所以用-a
这个选项参数; - 从容器里面拷到宿主机的
/home/sz/code/
路径下面。
注意:在宿主机上面执行命令
2、从宿主机拷文件到容器里面
- 在宿主机里面执行如下命令
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
root@sz-H81U:/home/sz/code# docker cp a.txt 47683ef9b01e:/demo_ws/a.txt
参数解释:
- 容器 ID 为:
47683ef9b01e
,与容器前缀一致:root@47683ef9b01e:#
- 现在要将宿主机:
/home/sz/code/a.txt
的文件 拷贝到容器里面的/demo_ws/
路径下面 - 因为是文件,不需要选项参数。
注意:在宿主机上面执行如下命令
- 这是在容器中执行
docker cp
前后的对比:
root@47683ef9b01e:/demo_ws# ls
build devel src
root@47683ef9b01e:/demo_ws# ls
a.txt build devel src
显然多了一个 a.txt
的文件。
3、问题所在,我的坑?
执行命令:docker ps -a
,出现如下内容,其中NAMES
就是容器名了。
root@sz-H81U:/home/sz# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
47683ef9b01e ros-hilens1:latest "/bin/bash" About a minute ago Up About a minute elastic_jang
80cc32360c4a ros-hilens1:latest "/bin/bash" 38 minutes ago Exited (0) 36 minutes ago sweet_liskov
ffef6a344d30 ros-hilens1:latest "/bin/bash" 41 minutes ago Exited (0) 40 minutes ago nifty_buck
c0114380ef58 ros-hilens1 "/bin/bash" 42 minutes ago Exited (0) 36 minutes ago eloquent_chaum
c1d586b3060d ros-hilens1:latest "/bin/bash" 43 minutes ago Exited (0) 43 minutes ago unruffled_brown
1781f7decff5 ros-hilens1 "/bin/bash" 2 hours ago Exited (0) 43 minutes ago amazing_hoover
eabc9ff1d0cd ros-hilens1 "/bin/bash" 2 hours ago Exited (0) 2 hours ago thirsty_jones
fe5282e395eb ros-hilens1:latest "/bin/bash" 2 hours ago Exited (0) 2 hours ago reverent_joliot
c1e9942322bb ros-hilens1 "/bin/bash" 2 hours ago Exited (0) 2 hours ago happy_allen
b3a1f08b0002 ros-hilens1:latest "/bin/bash" 2 hours ago Exited (0) 2 hours ago mystifying_varahamihira
b3e83e0ffed9 hello-world "/hello" 22 hours ago Exited (0) 22 hours ago xenodochial_pascal
通过 CONTAINER ID
确认容器。
个人问题:(划重点)
在于我拷贝文件或者文件夹时候,开始的时候镜像容器 ID 没有对应上,不知道会拷贝到哪里,直接用 ID 会更明显。