docker宿主机和容器的拷贝、目录挂载

导出镜像的两种方式

基于镜像,导出镜像

# 导出
docker save --output/-o 导出之后的镜像名 要导出的镜像名
# 导入
docker load --input/-i 要导入的镜像名
docker load < 要导入的新镜像名
[root@localhost ~]# docker save -o mynginx.img nginx 
[root@localhost ~]# docker rmi nginx:latest
Untagged: nginx:latest
Untagged: nginx@sha256:644a70516a26004c97d0d85c7fe1d0c3a67ea8ab7ddf4aff193d9f301670cf36
Deleted: sha256:87a94228f133e2da99cb16d653cd1373c5b4e8689956386c1c12b60a20421a02
Deleted: sha256:55b6972054b24c53054322a52748324df5797eefbb6dc374e41522a91d532dd5
Deleted: sha256:6b88aa6f4485486bfc779cccfbe4a7a47a502a7cff2cd70be89c59dcd0db12a8
Deleted: sha256:472c64059965c7b6b1b534ba07374c1d034b17c99acb3cf4534fe78abed41101
Deleted: sha256:788a5cf1e4599312b5923694f53e556ba0e2eb4a6bbb51958e0ec2b510345a49
Deleted: sha256:410f31f9ae37c62af85e8f9575c5f4d75542be1739ac1ca5982cf461be0b13bc
Deleted: sha256:e81bff2725dbc0bf2003db10272fef362e882eb96353055778a66cda430cf81b
[root@localhost ~]# docker load -i mynginx.img
e81bff2725db: Loading layer [==================================================>]  72.52MB/72.52MB
43f4e41372e4: Loading layer [==================================================>]  64.97MB/64.97MB
788e89a4d186: Loading layer [==================================================>]  3.072kB/3.072kB
f8e880dfc4ef: Loading layer [==================================================>]  4.096kB/4.096kB
f7e00b807643: Loading layer [==================================================>]  3.584kB/3.584kB
9959a332cf6e: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: nginx:latest
[root@localhost ~]# 

基于容器,导出镜像

# 导入
docker export 容器名 > 导出的镜像名
# 导出
cat 要导入的镜像文件名 | docker import - 导入的新镜像名
[root@localhost ~]# docker run -itd --name mynginx nginx bash
7ba7ef0c17a0e8bf74d92064224c63b4a5382428a089726b97ce84bc58d5b876
[root@localhost ~]# docker export mynginx > mynginx.img
[root@localhost ~]# cat mynginx.img | docker import - mynginx2
sha256:b2c10821e80ade6a5aa8681895fa4f64b3f47d24201b9e77adbef40c33d19fe6

数据拷贝

docker cp 宿主机目录/文件 容器名/容器ID:容器路径
docker cp 容器名/容器ID:容器路径 宿主机目录/文件

目录挂载

指定目录挂载

创建容器添加 -v 参数,格式为 宿主机目录:容器目录

docker run -id -v /mydata/docker_nginx/data:/usr/local/data --name nginx-01 nginx
docker run -id -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

匿名挂载

匿名挂载只需要写容器的目录,容器外对应的目录会在 /var/lib/docker/volumes 中生成

# 匿名挂载
docker run -id --name nginx_01 -v /usr/local/data nginx
# 查看volume数据卷信息
docker volume ls

具名挂载

给数据卷起了个名字,容器外对应的目录会在 /var/lib/docker/volume 中生成

docker run -id --name nginx_02 -v docker_nginx_data:/usr/local/data nginx
[root@localhost ~]# docker run -id --name nginx_02 -v docker_nginx_data:/usr/local/data nginx
ae9face96b78b399d4b6802cf49a2b002a776d9c57ec085826fa4c73e8d14a39
[root@localhost ~]# docker volume ls
DRIVER    VOLUME NAME
local     5d3f84bd732beced170847694a5fb844e3bebb642bc6c714dd55a56fe3abdf0d
local     docker_nginx_data

只读/只写

# 只读。只能通过修改宿主机内容实现对容器的数据管理
docker run -it -v /宿主机目录:/容器目录:ro 镜像名
# 读写,默认。宿主机和容器可以双向数据操作

volumes-from (继承)

# 容器 nginx_04 指定目录挂载
docker run -id --name nginx_04 -v /mydata/docker_nginx/data/:/usr/local/data nginx
# 容器 nginx_05 和 nginx_06 相当于继承 nginx_04 容器的挂载目录
docker run -id --name nginx_05 --volumes-from nginx_04 nginx
docker run -id --name nginx_06 --volumes-from nginx_04 nginx

查看目录挂载关系

通过 docker volume inspect 数据卷名称 可以查看该数据卷对应宿主机的目录地址

[root@localhost ~]# docker volume inspect docker_nginx_data
[
    {
        "CreatedAt": "2021-10-19T14:49:12+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/docker_nginx_data/_data",
        "Name": "docker_nginx_data",
        "Options": null,
        "Scope": "local"
    }
]

查看容器IP地址

查看容器的元信息

docker inspect 容器名称|容器ID

输出容器的IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器ID
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值