前提:容器服务必须启动才可以进行文件拷贝
一、常用命令
需求 | |
---|---|
宿主机某一文件/目录->>容器内部 | docker cp 需要拷贝的文件或目录 容器名称:容器目录 |
容器内部某一文件/目录->>宿主机 | docker cp 容器名称:容器内目录/文件 宿主机目录/文件 docker cp 容器名称:容器内目录/文件 宿主机目录和文件 |
二、案例演示
2.1. 将宿主机文件拷贝到容器内
docker cp 需要拷贝的文件或目录 容器名称:容器目录
需求:将宿主机/root/fileDir目录下面的1.txt复制到oracle_11g容器的/目录下面操作日志:
[root@localhost fileDir]# pwd
/root/fileDir
[root@localhost fileDir]# docker cp /root/fileDir/1.txt oracle_11g:/
[root@localhost fileDir]# docker exec -it oracle_11g /bin/bash
[oracle@5a1df27b5ede /]$ ll
2.2. 将容器内部文件复制到宿主机
操作声明:在宿主机上操作
格式:docker cp 容器名称:容器内拷贝的文件 宿主机目录或者宿主机文件
注:如果是文件,而后面的文件名与容器内部文件名称不一致,则代表将容器
内部拷贝的文件复制到宿主机上并对文件进行重命名操作
需求说明:
将oracle_11g数据库的监听文件复制到宿主机上有3种操作方式第1种:指定宿主机的目录
#简言之,就是讲容器内部的文件拷贝到宿主机的指定目录下面将oracle_11g数据库的tnsnames.ora监听文件复制到宿主机上的/目录下面
docker cp oracle_11g:/home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora /第2种:指定宿主机的文件名称
#简言之,就是将容器内部的文件拷贝到宿主机上并指定文件名称将oracle_11g数据库的tnsnames.ora监听文件复制到宿主机上的,文件名称为tnsnames.ora
oracle_11g:/home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora tnsnames.ora这里没有指定宿主机目录,至指定了拷贝到宿主机文件名称,那么拷贝的文件会去哪呢?
当前目录在那执行的拷贝命令,文件就在那里(当前目录下面)第3种:指定宿主机的目录和文件名称
#简言之,就是将容器内部的文件拷贝到宿主机的指定目录和并指定文件名称将oracle_11g数据库的tnsnames.ora监听文件复制到宿主机上的,文件名称为tnsnames.ora
oracle_11g:/home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora /tnsnames.ora补充:
1>在第2、3种中,文件如果不一致,则代表文件重命名.
2>在第3种中,当前目录在~目录下面执行命令,文件也不在~目录下面,因为在命令中已经指定宿主机目录
三、目录拷贝
3.1. 将宿主机上的文目录拷贝到容器内
#1.在/root目录下创建testdir文件夹,然后再文件架下面创建1.html
mkdir testdir
cd testdir
echo "123" >> 1.html
cd ~
#2.将/root/testdir目录,复制到oracle_11g容器的/目录下面
docker cp /root/testdir oracle_11g:/
#3.进入oracle_11g容器
docker exec -it oracle_11g /bin/bash
#4. 在/目录下面查看手否有testdir文件夹
ll
3.2. 将容器内部目录复制到宿主机的指定目录
#1.将宿主机的/roottestdir目录删除
rm -rf testdir
#2.将oracle_11g容器的/目录下面的testdir文件夹,复制到宿主机上的/root目录下面
docker cp oracle_11g:/testdir /root
#3.在/root目录下面查看手否有testdir文件夹
ll
格式:
- docker cp 容器名:目录下的文件/目录 文件名/目录名
- docker cp 容器名:目录下的文件 文件名
- docker cp 容器名:目录下的目录 目录名
注:后台的文件名如果不一致,代表重命名
想学习更多微服务、分布式、中间件、数据库、项目快速构建等系列技术
请访问Gblfy主页:https://blog.csdn.net/weixin_40816738
让我们一起进步!!!