代码编织梦想

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. 想看原视频点这里,狂神讲的不错的
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/panxin801/article/details/127170362

Docker快速入门总结笔记-爱代码爱编程

文章目录 1. Docker概述2. 虚拟化技术和容器化技术3. Docker的基本组成4. Docker的安装5. Docker的卸载6. 配置阿里云镜像加速8. Docker容器运行流程9. 底层原理10. Docker常用命令10.1 基础命令10.2 镜像命令10.3 容器命令10.4 其他常用命令10.4 1 日志的查看10.4 2 查看

docker学习记录-爱代码爱编程

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 是一个便携的应用容器” 1.是容器性能开销极低 2.解决运行环境不一致所导致的问题。不会产生“本地运行没问题,到服务器上就不行了”的情况。实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性                           3.类似于集装箱,

Docker学习记录-爱代码爱编程

01、前言 docker在环境部署的时候就接触过了,因为没有系统地学习过docker,docker-compose,nginx等相关知识,导致在部署网站的时候浪费了很多时间,而且网上的代码也没有解释的很清楚,所以只能ctrl c+v一点点的尝试。光是配置nginx就折磨了我一天,也激发了学习的欲望。 没正式学习之前谈谈我在部署中领悟到的,对于docke

docker学习记录 docker 脚本(一)-爱代码爱编程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言`一、docker安装以及常用命令二、容器镜像的图形管理工具---Portainer面板1.Portainer面板安装3.Portainer面板汉化3.Portainer面板启动 前言` 记录docker 安装开发环境命令 系统环境:centos7

详细记录docker部署lnmp-爱代码爱编程

docker容器化部署lnmp 一、安装docker #1、更新 yum update #2、docker默认安装版本为1.13.1,这里安装docker-ce版,即使社区版 # step 1: 安装必要的一些系统工具 [root@localhost ~]# sudo yum install -y yum-utils device-mapper-pers

helm入门简介_helm push-爱代码爱编程

目 录 1. 简 介2. Helm的安装2.1 用Helm项目安装2.2 通过包管理器安装2.3 验证安装结果2.4 为Helm配置仓库2.4.1 安装harbor仓库2.4.2 通过仓库安装Chart