背景:虚拟机已安装docker环境,并且已经创建好了需要拷贝的源
1 了解和认识下docker cp命令
安装好docker后,拉取python镜像完成后,使用镜像mysql以交互模式启动一个容器,在容器内执行/bin/bash命令
docker run -it mysql /bin/bash
root@983a1ec49bef:/#
已进入mysql容器内
创建一个文件a.txt
touch a.txt
编辑文本内容,方便拷贝到host上比对
小插曲:容器上无法使用编辑器进行编辑
root@983a1ec49bef:/home# vim a.txt
bash: vim: command not found
root@983a1ec49bef:/home# vi a.txt
bash: vi: command not found
发现容器内无vim和vi编辑命令
对于这种情况的话,需要安装vim软件包,非通过yum安装:
更新软件包,在命令行中输入:
apt-get update
同步更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,获取最新的软件包,
等更新完成后,然后再输入:
apt-get install vim
再试,即可正常使用vim编辑命令。(vi同用此方法安装)
继续准备拷贝文件到本地,文件在容器内的路径为/home/a.txt
2 进行docker拷贝
查询出镜像mysql启动的容器容器name
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
983a1ec49bef mysql "docker-entrypoint.s…" 3 hours ago Up 3 hours 3306/tcp, 33060/tcp unruffled_hermann
容器的name为unruffled_hermann
将Docker容器中的文件拷贝到主机中
#docker cp [容器ID或容器名:容器路径] [主机文件路径]
docker cp unruffled_hermann:/home/a.txt /home/
[root@localhost home]# ll
total 8
-rw-r--r--. 1 root root 90 Aug 25 14:10 a.txt
drwx------. 15 oracle oracle 4096 Aug 25 10:31 oracle
可以看到容器内的a.txt文件已被拷贝到本地。
3 将主机中的文件拷贝到Docker容器中
拷贝命令:docker cp [主机文件路径] [容器ID或容器名:容器路径]
docker cp /etc/passwd unruffled_hermann:/home/
执行完进入容器后,切到容器内/home/目录下
ls查看
root@983a1ec49bef:/home# ls
a.txt passwd