docker基础用法
文章目录
Docker使用了C/S体系架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过UNIX套接字或网络接口进行通信。
docker镜像与镜像仓库
为什么镜像仓库名字是Registry而不是repository?在docker中仓库的名字是以应用的名称取名的。
镜像是静态的,而容器是动态的,容器有其生命周期,镜像与容器的关系类似于程序与进程的关系。镜像类似于文件系统中的程序文件,而容器则类似于将一个程序运行起来的状态,也即进程。所以容器是可以删除的,容器被删除后其镜像是不会被删除的。
docker对象
When you use docker, you are creating and using images, containers, networks, volumes, pluginns, and other objects.
- IMAGES
- An image is a read-only template with instructions for creating a docker container.
- Often, an image is based on another image, with some additional customization.
- You might create your own images or you might only use those created by others and published in a registry.
- CONTAINERS
- A conntainer is a runnable instance of an image.
- You can create, run, stop, move, or delete a container using the docker API or CLI.
- You can connect a container to one or more networks, attach storage to it, or even create a new image based on its current state.
当您使用 docker 时,您正在创建和使用镜像、容器、网络、卷、插件和其他对象。
- 镜像
- 镜像是一个只读模板,其中包含创建 docker 容器的说明。
- 通常,一个镜像基于另一个镜像,并带有一些额外的自定义。
- 您可以创建自己的镜像,也可以使用其他人创建并在仓库中发布的镜像。
- 容器
- 容器是镜像的可运行实例。
- 您可以使用 docker API 或 CLI 创建、运行、停止、移动或删除容器。
- 您可以将容器连接到一个或多个网络,为其附加存储,甚至可以根据其当前状态创建新镜像。
安装及使用docker
docker安装
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# curl -o docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
[root@localhost yum.repos.d]# sed -i 's@https://download.docker.com@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' docker-ce.repo
[root@localhost yum.repos.d]# yum -y install docker-ce
docker加速
docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就是通过配置此文件来实现的。
docker的加速有多种方式:
- docker cn
- 中国科技大学加速器
- 阿里云加速器(需要通过阿里云开发者平台注册帐号,免费使用个人私有的加速器)
这里使用阿里云的加速器进行加速
登录阿里云账号后点击控制台
点击左上角按钮
找到容器镜像服务
点击镜像工具——>镜像加速器,找到适合自己的系统,根据下面进行配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4nrel0nr.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker常用操作
命令 | 功能 |
---|---|
docker search | Search the Docker Hub for images |
docker pull | Pull an image or a repository from a registry |
docker images | List images |
docker create | Create a new conntainer |
docker start | Start one or more stopped containers |
docker run | Run a command in a new container |
docker attach | Attach to a runninng container |
docker ps | List containers |
docker logs | Fetch the logs of a container |
docker restart | Restart a container |
docker stop | Stop one or more running containers |
docker kill | Kill one or more running containers |
docker rm | Remove onne or more containers |
docker exec | Run a command in a running container |
docker info | Display system-wide information |
docker inspect | Return low-level information on Docker objects |
docker search命令
docker search:从docker hub查找镜像
语法
docker search [OPTIONS] TERM
OPTIONS说明:
- –automated:只列出 automated build类型的镜像;
- –no-trunc:显示完整的镜像描述;
- -f <过滤条件>:列出收藏数不小于指定值的镜像。
从docker hub中查找所有镜像名包含nginx并且收藏数大于1000的镜像
[root@localhost ~]# docker search -f stars=1000 nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 15893 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 2098 [OK]
参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
STARS: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
docker pull命令
docker pull:从镜像仓库中拉取或者更新指定镜像
语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS说明:
- -a:拉取所有 tagged 镜像
- –disable-content-trust:忽略镜像的校验,默认开启
从docker hub下载nginx的最新版镜像
[root@localhost ~]# docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
eff15d958d66: Already exists
ba1caf8ba86c: Pull complete
ab86dc02235d: Pull complete
0d58b11d2867: Pull complete
e88da7cb925c: Pull complete
Digest: sha256:1d71eef54c08435c0be99877c408637f03112dc9f929fba3cccdd15896099b02
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest ad17c88403e2 12 days ago 143MB
docker images命令
docker images:列出本地镜像
语法
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
- -a:列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
- –digests:显示镜像的摘要信息;
- -f:显示满足条件的镜像;
- –format:指定返回值的模板文件;
- –no-trunc:显示完整的镜像信息;
- -q:只显示镜像ID。
查看本地镜像列表
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest ad17c88403e2 12 days ago 143MB
nginx latest ea335eea17ab 13 days ago 141MB
docker create命令
docker create:创建一个新容器但不启动它
语法
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -P: 随机端口映射,容器内部端口随机映射到主机的端口
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- –name=“nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=“ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
- -m:设置容器使用内存最大值;
- –net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
- –volume , -v: 绑定一个卷
使用docker镜像nginx:latest创建一个容器,并将容器命名为web
[root@localhost ~]# docker create --name web nginx:latest
3f19feaf30938f7f7a87921e774b7f2ee483f8bd7f543712e30d1898d60aa775
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 12 seconds ago Created web
docker start/stop/restart 命令
docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器
语法
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]
停止运行中的容器web
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 4 minutes ago Up 1 second 80/tcp web
[root@localhost ~]# docker stop web
web
启动被停止的容器web
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker start web
web
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 5 minutes ago Up 2 seconds 80/tcp web
重启容器web
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 6 minutes ago Up About a minute 80/tcp web
[root@localhost ~]# docker restart web
web
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 6 minutes ago Up 1 second 80/tcp web
docker run命令
docker run:创建一个新的容器并运行一个命令
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -P: 随机端口映射,容器内部端口随机映射到主机的端口
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- –name=“nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=“ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
- -m:设置容器使用内存最大值;
- –net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
- –volume , -v: 绑定一个卷
使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机的80端口
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
[root@localhost ~]# docker run -p 80:80 -d nginx:latest
9cf5c11a91bc406f746aaafcd153b8231f6d7403d7776f0d2b7251b1093e8e48
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cf5c11a91bc nginx:latest "/docker-entrypoint.…" 27 seconds ago Up 26 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp amazing_golick
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 13 minutes ago Up 6 minutes 80/tcp web
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 128 [::]:22 [::]:*
docker attach命令
docker attach:连接到正在运行中的容器
语法
docker attach [OPTIONS] CONTAINER
要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。
官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上–sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。
docker ps命令
docker ps:列出容器
语法
docker ps [OPTIONS]
OPTIONS说明:
- -a:显示所有的容器,包括未运行的。
- -f:根据条件过滤显示的内容。
- –format:指定返回值的模板文件。
- -l:显示最近创建的容器。
- -n:列出最近创建的n个容器。
- –no-trunc:不截断输出。
- -q:静默模式,只显示容器编号。
- -s:显示总的文件大小。
列出所有正在运行的容器信息
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cf5c11a91bc nginx:latest "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp amazing_golick
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 17 minutes ago Up 11 minutes 80/tcp web
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
容器状态有7种:
- created(已创建)
- restarting(重启中)
- running(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
列出所有创建的容器ID
[root@localhost ~]# docker ps -a -q
9cf5c11a91bc
3f19feaf3093
docker logs命令
docker logs:获取容器的日志
语法
docker logs [OPTIONS] CONTAINER
OPTIONS说明:
- -f : 跟踪日志输出
- –since:显示某个开始时间的所有日志
- -t : 显示时间戳
- –tail:仅列出最新N条容器日志
跟踪查看容器web的日志输出
[root@localhost ~]# docker logs -f web
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/12/01 07:55:32 [notice] 1#1: using the "epoll" event method
2021/12/01 07:55:32 [notice] 1#1: nginx/1.21.4
2021/12/01 07:55:32 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2021/12/01 07:55:32 [notice] 1#1: OS: Linux 4.18.0-257.el8.x86_64
......
docker kill命令
docker kill:杀掉一个运行中的容器
语法
docker kill [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
- -s:向容器发送一个信号
杀掉运行中的容器web
[root@localhost ~]# docker kill -s kill web
web
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cf5c11a91bc nginx:latest "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp amazing_golick
docker rm命令
docker rm:删除一个或多个容器
语法
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
- -f:通过 SIGKILL 信号强制删除一个运行中的容器。
- -l:移除容器间的网络连接,而非容器本身。
- -v:删除与容器关联的卷。
强制删除容器amazing_golick
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cf5c11a91bc nginx:latest "/docker-entrypoint.…" 12 minutes ago Up 12 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp amazing_golick
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 26 minutes ago Exited (137) 2 minutes ago web
[root@localhost ~]# docker rm -f amazing_golick
amazing_golick
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f19feaf3093 nginx:latest "/docker-entrypoint.…" 26 minutes ago Exited (137) 2 minutes ago web
docker exec命令
docker exec:在运行的容器中执行命令
语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
- -d:分离模式: 在后台运行
- -i:即使没有附加也保持STDIN 打开
- -t:分配一个伪终端
在容器web中开启一个交互模式的终端
[root@localhost ~]# docker exec -it web /bin/bash
root@3f19feaf3093:/# ls
bin dev docker-entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint.d etc lib media opt root sbin sys usr
docker info命令
docker info:显示docker系统信息,包括镜像和容器数量
语法
docker info [OPTIONS]
查看docker系统信息
[root@localhost ~]# docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.6.3-docker)
scan: Docker Scan (Docker Inc., v0.9.0)
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 2
Server Version: 20.10.11
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc version: v1.0.2-0-g52b36a2
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 4.18.0-257.el8.x86_64
Operating System: CentOS Stream 8
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.622GiB
Name: localhost.localdomain
ID: DCGU:VWQD:HHG7:BJAE:DRR5:TCVW:PKKH:ZJK4:6NII:MPRC:ZCUL:K66C
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://4nrel0nr.mirror.aliyuncs.com/
Live Restore Enabled: false
docker inspect命令
docker inspect:获取容器/镜像的元数据
语法
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS说明:
- -f:指定返回值的模板文件。
- -s:显示总的文件大小。
- –type:为指定类型返回JSON。
获取镜像nginx:latest的元信息
[root@localhost ~]# docker inspect nginx:latest
[
{
"Id": "sha256:ea335eea17ab984571cd4a3bcf90a0413773b559c75ef4cda07d0ce952b00291",
"RepoTags": [
"nginx:latest"
],
"RepoDigests": [
"nginx@sha256:097c3a0913d7e3a5b01b6c685a60c03632fc7a2b50bc8e35bcaa3691d788226e"
],
"Parent": "",
"Comment": "",
"Created": "2021-11-17T10:38:14.652464384Z",
"Container": "8a038ff17987cf87d4b7d7e2c80cb83bd2474d66e2dd0719e2b4f7de2ad6d853",
"ContainerConfig": {
"Hostname": "8a038ff17987",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.21.4",
"NJS_VERSION=0.7.0",
"PKG_RELEASE=1~bullseye"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"nginx\" \"-g\" \"daemon off;\"]"
],
"Image": "sha256:2fb4060b053a39040c51ff7eadd30325de2c76650fc50aa42839070e16e8bdcb",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGQUIT"
},
"DockerVersion": "20.10.7",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.21.4",
"NJS_VERSION=0.7.0",
"PKG_RELEASE=1~bullseye"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"Image": "sha256:2fb4060b053a39040c51ff7eadd30325de2c76650fc50aa42839070e16e8bdcb",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGQUIT"
},
"Architecture": "amd64",
"Os": "linux",
"Size": 141490847,
"VirtualSize": 141490847,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/9490eafebc539d4b4589552e158d45b2cd04548dbb2cdad39c3fec06463130cc/diff:/var/lib/docker/overlay2/85cda0a4c04320f334498a9362a08ccb9bcf4f7e0dc02a9315e07179433dffda/diff:/var/lib/docker/overlay2/bc62167fdc3835636bbc9ec60015cd0bc0dc11d5fa08159c49cbef2f1e593e87/diff:/var/lib/docker/overlay2/1fec61f8ea6d992b44f5dc26311f50d13c653363dd782c2d6677b0e0a7eeec85/diff:/var/lib/docker/overlay2/082874ad1b85c5ee26795cacb75d9a24048871579e07df9690c861b96807a61d/diff",
"MergedDir": "/var/lib/docker/overlay2/d8935147eb3459bdd91c91511abb4d14677c642b3b01673de828fdf2e894c281/merged",
"UpperDir": "/var/lib/docker/overlay2/d8935147eb3459bdd91c91511abb4d14677c642b3b01673de828fdf2e894c281/diff",
"WorkDir": "/var/lib/docker/overlay2/d8935147eb3459bdd91c91511abb4d14677c642b3b01673de828fdf2e894c281/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:e1bbcf243d0e7387fbfe5116a485426f90d3ddeb0b1738dca4e3502b6743b325",
"sha256:37380c5830feb5d6829188be41a4ea0654eb5c4632f03ef093ecc182acf40e8a",
"sha256:ff4c727794302b5a0ee4dadfaac8d1233950ce9a07d76eb3b498efa70b7517e4",
"sha256:49eeddd2150fbd14433ec1f01dbf6b23ea6cf581a50635554826ad93ce040b68",
"sha256:1e8ad06c81b6baf629988756d90fd27c14285da4d9bf57179570febddc492087",
"sha256:8525cde30b227bb5b03deb41bda41deb85d740b834be61a69ead59d840f07c13"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]