[Docker] Docker 记录

Docker 记录

Author: Xin Pan

Date: 2022.10.01


Docker部分常用命令

查询元数据

docker inspect <container_name>

查询容器运行状态

docker stats <container_name>

从容器commit镜像

docker commit -m="commit摘要" -a="commit author" <container_name> <image_name>:<version>

容器数据卷

具名挂载和匿名挂载

-v 容器内路径 # 匿名挂载
-v 卷名:容器内路径 # 具名挂载
-v /宿主机路径:容器内路径 # 指定路径挂载

还可以使用dockerfile处理

dockerfile是这样的

FROM centos

VOLUME ["volume01","volume02"]

CMD echo "----end----"
CMD /bin/bash

可以看到在下边的容器内,volume01volume02通过匿名挂载的方式挂载进了容器内。

[root@169f0dbb692b /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume01	volume02
[root@169f0dbb692b /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         1.8T  468G  1.3T  27% /
tmpfs            64M     0   64M   0% /dev
tmpfs            32G     0   32G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/sda2       1.8T  468G  1.3T  27% /volume01 !!!!!!!!!!
tmpfs            32G     0   32G   0% /proc/asound
tmpfs            32G     0   32G   0% /proc/acpi
tmpfs            32G     0   32G   0% /proc/scsi
tmpfs            32G     0   32G   0% /sys/firmware
[root@169f0dbb692b /]# ls -l
total 56
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Oct  5 01:50 dev
drwxr-xr-x   1 root root 4096 Oct  5 01:50 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 655 root root    0 Oct  5 01:50 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x  11 root root 4096 Sep 15  2021 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Oct  5 01:50 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
drwxr-xr-x   2 root root 4096 Oct  5 01:50 volume01 !!!!!!!!
drwxr-xr-x   2 root root 4096 Oct  5 01:50 volume02 !!!!!!!!

数据卷容器

如何实现容器间的数据共享,数据卷容器。

通过--volumes-from实现。

# 通过命令产生容器docker01
docker run -it --name docker01 panxin/centos bash

# 让容器docker02和容器docker01共享数据
docker run -it --name docker02 --volumes-from docker01 panxin/centos bash

# 让容器docker03和容器docker01共享数据
docker run -it --name docker03 --volumes-from docker01 panxin/centos bash

然后进入这三个容器我们可以发现

CONTAINER ID   NAMES
8c070a27d70a   docker03
fc0c7e9afbc1   docker02
a05c2f45877b   docker01

在容器docker02内可以看到,文件共通。

[root@fc0c7e9afbc1 volume01]# ls
docker01  docker02  docker03

在容器docker01内可以看到,文件共通。

[root@a05c2f45877b volume01]# ls
docker01  docker02  docker3

在容器docker03内可以看到,文件共通。

[root@8c070a27d70a volume01]# mv docker3  docker03
[root@8c070a27d70a volume01]# ls
docker01  docker02  docker03

而且有意思对的地方来了。

这个时候即便把docker01 stop 并且rm 掉,这三个文件还在吗? 因为docker02 03 都是volumes-from docker01啊,看到这的朋友请想想这个问题???

其实这三个文件会继续存在。

[root@a05c2f45877b volume01]# ls
docker01  docker02  docker03
[root@a05c2f45877b volume01]# read escape sequence
panxin@ubuntu-gtx3080:/$ docker rm -f a05c
a05c

可以看到docker01 被彻底删除了,但是咱们返回docker02 03 。

[root@fc0c7e9afbc1 volume01]# ls
docker01  docker02  docker03

文件还在这里。

这是因为数据卷容器是备份或者说拷贝文件的而不是共享文件。这样保证了文件的安全。是不是很有意思^_^

数据卷容器的生命周期一直持续到没有容器使用为止。

Ref

  1. 想看原视频点这里,狂神讲的不错的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值