目录

1.1 docker 镜像 

1.2 docker 命令

1. 什么是docker镜像?

  docker镜像不包含Linux内核而有精简的Linux操作系统

    •   大白话

    •   我么安装操作系统ISO就可以理解为用C语言写的安装包(例如,微信安装包)

    •   我们安装操作系统就好像我们安装微信一样

    •   docker镜像也像ISO安装包,但是因为操作系统已将安装Linux内核,所以安装包可以直接使用

           ( 这个安装包只有Linux文件系统,而内核直接使用Linux系统本身就行)

  docker 镜像是docker容器的静态视角,docker容器是docker镜像的运行状态

    •   程序和进程的区别

    •   docker镜像--->程序(存储在硬盘里的代码)

    •   进程-----> 把我们硬盘里的代码加载到内存运行

  容器是docker镜像的引用,如何docker镜像删除,次镜像创建的容器也会失效

2.容器读写层(本质)

  1. 容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时,会先从镜像里要写的文件复制到容器自己的文件系统中(读写层)。

  2. 如果容器删除了,最上面的读写层也就删除了,改动也就丢失了

  3. 所以无论多少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作的,并不会修改镜像的源文件

  4. 若想持久化这些改动,可以通过docker commit 将容器保存成一个新镜像

  docker镜像与命令

 

   docker镜像与命令

 

   docker镜像与命令

3.查看docker容器的工作目录

docker镜像与命令
 1 [root@linux-node4 diff]# docker run -itd --name=web1 -p 192.168.56.14:81:80 nginx:latest
 2 [root@linux-node4 diff]# docker inspect web1
 3 [
 4     {
 5         # 存储驱动
 6         "GraphDriver": {
 7             "Data": {
 8                 "LowerDir": "/var/lib/docker/overlay2/51692869029f819494bb402dc70aa2869b8d1848c3b65c549a010a260e44cc13-init/diff:/var/lib/docker/overlay2/09fa1314e484781dfc1fb25a6cf5df2502fe35dea9025a373a3cb0202732ccce/diff:/var/lib/docker/overlay2/162ec5c9be56e5d718011c09ed087eda04b755e1a68bd1953c60f175e6635e68/diff:/var/lib/docker/overlay2/7c1b27ff59a397ae7d6bd106db579e90476f57bb1ecef9fcb1a6f1ad5ce43b7c/diff",
 9                 "MergedDir": "/var/lib/docker/overlay2/51692869029f819494bb402dc70aa2869b8d1848c3b65c549a010a260e44cc13/merged",
10                 "UpperDir": "/var/lib/docker/overlay2/51692869029f819494bb402dc70aa2869b8d1848c3b65c549a010a260e44cc13/diff",
11                 "WorkDir": "/var/lib/docker/overlay2/51692869029f819494bb402dc70aa2869b8d1848c3b65c549a010a260e44cc13/work"
12             },
13             "Name": "overlay2"
14         },
15         "NetworkSettings": {
16             "Ports": {
17                 "80/tcp": [
18                     {
19                         "HostIp": "192.168.56.14",
20                         "HostPort": "81"
21                     }
22                 ]
23             },
24             "MacAddress": "02:42:ac:11:00:02",
25             "Networks": {
26                 "bridge": {
27                     "Gateway": "172.17.0.1",
28                     "IPAddress": "172.17.0.2",
29                     "IPPrefixLen": 16,
30                 }
31             }
32         }
33     }
34 ]
35 [root@linux-node4 diff]# cd /var/lib/docker/overlay2/51692869029f819494bb402dc70aa2869b8d1848c3b65c549a010a260e44cc13
36 [root@linux-node4 51692869029f819494bb402dc70aa2869b8d1848c3b65c549a010a260e44cc13]# ll    # 查看docker工作目录都哪些内容
37 diff  link  lower  merged  work
38 diff      # 读写层的差异(在读写层做的操作由这个容器单独管理)
39 merged    # 引用docker进行中的文件系统
40 work      # 项目工作目录
View Code

相关文章:

  • 2022-01-18
  • 2022-12-23
  • 2021-08-29
  • 2021-09-22
  • 2021-06-15
  • 2022-01-27
  • 2021-07-02
猜你喜欢
  • 2021-09-20
  • 2021-07-02
  • 2022-12-23
  • 2021-12-25
  • 2021-11-03
  • 2021-05-19
相关资源
相似解决方案