docker数据管理
[root@feng ~]# systemctl status docker 查看docker状态
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2020-12-04 13:34:19 CST; 10min ago
Docs: https://docs.docker.com
Main PID: 1019 (dockerd)
Memory: 56.0M
CGroup: /system.slice/docker.service
├─1019 /usr/bin/dockerd
└─1165 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-tim…
[root@feng ~]# systemctl start docker 启动docker
[root@feng ~]# systemctl enable docker 设置开机不自启
[root@feng ~]# mkdir /data 创建目录
[root@feng ~]# df -h 查看磁盘信息
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 37G 1.7G 36G 5% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.7M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
[root@feng ~]# docker images 查看列表信息
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.200.10:5000/centos latest 2d4f4b5309b1 5 months ago 26.2 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
[root@feng ~]# docker run -itd --name volumes -v /data/:/data 2d4f4b5309b1 /bin/bash 挂载本地的目录到容器里
c89d0f039445a66e944f20d1a73dbe1be34220c7b148a97137484354c4795056
-v 用来指定挂载目录,:前面的/data/为宿主机本地目录,:后面的/data/为容器里的目录,会在容器中自动创建
[root@feng ~]# docker inspect volumes 查看最新容器ID(查看容器详细信息)
Mounts": [
{
“Type”: “bind”,
“Source”: “/data”,
“Destination”: “/data”,
“Mode”: “”,
“RW”: true,
“Propagation”: “”
},
[root@feng ~]# docker inspect -f {{.Mounts}} volumes 查询容器详细信息
[{volume 9d39cb597a169d38f746a6003fad60076b409bbbb0efda1412c8bc001e423028 /var/lib/docker/volumes/9d39cb597a169d38f746a6003fad60076b409bbbb0efda1412c8bc001e423028/_data /var/lib/registry local true } {bind /data /data true }]
克隆当前窗口
[root@feng ~]# docker images 查看centos ID信息
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.200.10:5000/centos latest 2d4f4b5309b1 5 months ago 26.2 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
回到本地窗口
[root@feng ~]# docker run -itd --volumes-from volumes 2d4f4b5309b1 /bin/bash 挂载数据卷
10e78822b65a4273285726802c36d231627a5d342da5683de5847b88690e594e
[root@feng ~]# docker ps -l 查看新建容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
10e78822b65a 2d4f4b5309b1 “/entrypoint.sh /b…” 13 seconds ago Exited (127) 12 seconds ago brave_brattain
[root@feng ~]# docker inspect volumes 查看容器详细信息
“Mounts”: [
{
“Type”: “bind”,
“Source”: “/data”,
“Destination”: “/data”,
“Mode”: “”,
“RW”: true,
“Propagation”: “”
},
[root@feng ~]# docker run -itd --name volumes002 -v /data 2d4f4b5309b1 /bin/bash 建立数据卷容器
94e68b76c5a7e43e3cd9c18c4c452f4eff8423e77966347833e6497ba511082f
/data/是容器的/data目录,并非本地的/data/目录
[root@feng ~]# docker inspect volumes002 查看容器volumes002详细信息
“Mounts”: [
{
“Type”: “volume”,
“Name”: “a386b18c4caf7447e4b7f05eb1c4092992fe533c91d4e60bb21735611c46e766”,
“Source”: “/var/lib/docker/volumes/a386b18c4caf7447e4b7f05eb1c4092992fe533c91d4e60bb21735611c46e766/_data”,
“Destination”: “/data”,
“Driver”: “local”,
“Mode”: “”,
“RW”: true,
“Propagation”: “”
},
[root@feng ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94e68b76c5a7 2d4f4b5309b1 “/entrypoint.sh /b…” 14 minutes ago Exited (127) 2 minutes ago volumes002
10e78822b65a 2d4f4b5309b1 “/entrypoint.sh /b…” 30 minutes ago Exited (127) 30 minutes ago brave_brattain
c89d0f039445 2d4f4b5309b1 “/entrypoint.sh /b…” 42 minutes ago Exited (127) 42 minutes ago volumes
d7a8324a3b92 registry “/entrypoint.sh /e…” 14 hours ago Exited (2) 5 hours ago wizardly_nightingale
数据卷备份
[root@feng ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.200.10:5000/centos latest 2d4f4b5309b1 5 months ago 26.2 MB
registry latest 2d4f4b5309b1 5 months ago 26.2 MB
[root@feng ~]# docker run -itd --name back --volumes-from volumes002 -v /data/backup:/backup 192.168.200.10:5000/centos tar cvf /backup/data.tar /data
acb4c55464ac8a7eb25c3c8d261d4d517074e8500227a921deda5d96d3c2070d
使用back数据卷新开一个容器,同时我们还需要把本地的/vol_data_backup/目录挂载到该容器的/backup下,这样在容器中/backup目录里面新建的文件,我们就可以直接在/data/backup/目录中看到了。 然后再把/data/目录下面的文件打包到成data.tar文件放到/backup目录下面
[root@feng ~]# ll /data/backup
total 4
-rw-r–r--. 1 root root 1536 Dec 4 14:48 data.tar
恢复
[root@feng ~]# docker run -itd --name back02 --volumes-from volumes002 -v /data/backup:/backup192.168.200.10:5000/centos tar xf /backup/data.tar /data
9132c81a32a32e7728f71f7fd878404a6b686ba261a9632ec763390c3e5cf63d
不进容器直接查看(可用docker volume)
[root@feng ~]# docker volume ls 查看容器列表
DRIVER VOLUME NAME
local 49c4671d1d10360ebacf21f96be04c249151a5569d5d983edec9b8aa72b4f231
local 5eaca0d40211c630b230d622612479762110a3c304b2237aa2b9343a6879122b
local 7dab72611be37675b318f219cdfb5b2e9763ed193fe7f358bf4543bf85f82624
local 9d39cb597a169d38f746a6003fad60076b409bbbb0efda1412c8bc001e423028
local 9ed521170463ef7980f4029291a6031eec3f4118ad0d2b5c00b46c524589d428
local a386b18c4caf7447e4b7f05eb1c4092992fe533c91d4e60bb21735611c46e766
local ba7696d1759feb2d50ba92935dc0ef5ae1c52b1a7333a5734034b014fb2cb52f
local bc9844a585470d7f00a84e012268e53dc7d9f893ee433b6db7f97f25c29c2e11
local f99ce7ddda667f6be8f3dcf573701201d604fd2166f6eb69b29579d004d9b03e
[root@feng ~]# docker volume --help
Usage: docker volume COMMAND
Manage volumes
Options:
–help Print usage
Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove all unused volumes
rm Remove one or more volumes
Run ‘docker volume COMMAND --help’ for more information on a command.
[root@feng ~]# docker exec -it d7a8324a3b92 ip a 可以直接看ip 地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
32: eth0@if33: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:2/64 scope link
valid_lft forever preferred_lft forever
[root@feng ~]# docker exec -it d7a8324a3b92 ls /root
[root@feng ~]# docker exec -it d7a8324a3b92 mkdir /opt/test
等于进入容器查看
[root@feng ~]# docker exec -it d7a8324a3b92 /bin/bash
[ d7a8324a3b92 ]# ls /root