解读 MySQL 容器信息:`docker inspect` 字段详解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 解读 MySQL 容器信息:`docker inspect` 字段详解

前言

在使用 Docker 时,docker inspect 命令是一个非常有用的工具,它能够返回容器或镜像的详细配置信息和状态。以下是对 docker inspect mysql 命令输出的字段的详细解释,这些信息可以帮助您更好地了解容器的内部工作机制。

容器基础信息

  • Id: 容器的唯一标识符。
  • Created: 容器创建的时间。
  • Path: 容器启动时执行的命令。
  • Args: 传递给 Path 命令的参数。
  • State: 容器当前的状态,包括是否运行中、暂停、停止等。

容器状态详细信息

  • Status: 容器的简洁状态描述,例如 “running” 或 “exited”。
  • Running: 容器是否正在运行。
  • Paused: 容器是否被暂停。
  • Restarting: 容器是否正在重启。
  • OOMKilled: 容器是否因内存不足而被杀掉。
  • Dead: 容器是否已死亡。
  • Pid: 容器主进程的进程ID。
  • ExitCode: 容器退出时的退出码。
  • Error: 容器运行时的错误信息。
  • StartedAt: 容器上次启动的时间。
  • FinishedAt: 容器上次停止的时间。

镜像信息

  • Image: 容器使用的镜像的ID或名称。
  • ResolvConfPath: 容器使用的 resolv.conf 文件的路径,用于DNS解析。
  • HostnamePath: 容器使用的 hostname 文件的路径。
  • HostsPath: 容器使用的 hosts 文件的路径。
  • LogPath: 容器日志文件的路径。

容器配置

  • Name: 容器的名称。
  • RestartCount: 容器重启的次数。
  • Driver: 用于存储容器数据的存储驱动。
  • Platform: 容器运行的平台。
  • MountLabel: 容器使用的挂载标签。
  • ProcessLabel: 容器进程的标签。
  • AppArmorProfile: 用于限制容器内进程的 AppArmor 配置文件。

容器网络配置

  • NetworkMode: 容器的网络模式。
  • PortBindings: 容器端口映射的详细信息。
  • RestartPolicy: 容器的重启策略。
  • AutoRemove: 容器在退出时是否自动删除。

容器存储配置

  • VolumesFrom: 容器继承的其他容器的卷。
  • Volumes: 容器内部的卷信息。

容器安全和资源配置

  • CapAdd, CapDrop: 容器增加或删除的 Linux 内核功能。
  • CgroupnsMode: 容器的控制组命名空间模式。
  • Dns, DnsOptions, DnsSearch: 容器的 DNS 配置。
  • ExtraHosts: 容器的额外 hosts 条目。
  • GroupAdd: 容器添加的附加用户组。
  • IpcMode: 容器的 IPC 模式。
  • PidMode: 容器的进程 ID 模式。
  • Privileged: 容器是否以特权模式运行。
  • ReadonlyRootfs: 容器的根文件系统是否为只读。
  • SecurityOpt: 容器的安全选项。
  • UTSMode, UsernsMode: 容器的 UTS 名称空间和用户名称空间模式。

容器运行时配置

  • ConsoleSize: 容器的标准输入和输出的控制台大小。
  • CpuShares, Memory, NanoCpus: 容器的 CPU 和内存资源限制。
  • Cgroup, CpusetCpus, CpusetMems: 容器的 Cgroup 和 CPU 设置。
  • BlkioWeight, BlkioDevice: 容器的块 IO 权重和设备设置。
  • OomScoreAdj: 容器的 OOM(内存不足)杀死分数调整。
  • PidsLimit: 容器的进程数量限制。
  • ShmSize: 容器的共享内存大小。

容器日志配置

  • LogConfig: 容器的日志配置,包括日志类型和配置。

容器挂载信息

  • Mounts: 容器的挂载点信息,包括类型、源路径、目标路径等。

容器配置摘要

  • Config: 容器的配置摘要,包括命令、环境变量、卷、工作目录等。
  • NetworkSettings: 容器的网络设置,包括网络模式、端口映射、网络接口等。

图形驱动配置

  • GraphDriver: 容器使用的图形驱动的配置信息。

容器环境变量

  • Env: 容器的环境变量列表。

具体实例

下面是MySQL 容器的具体信息

[
    {
        "Id": "c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa",
        "Created": "2024-01-22T16:38:51.768765699Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "mysqld"
        ],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2024-05-23T09:33:17.914478642Z",
            "FinishedAt": "2024-05-23T09:48:06.466321364Z"
        },
        "Image": "sha256:a76e521c029290a5e42acd182b67a66b8bf1c42045e4a6977ee21e46a5fe6083",
        "ResolvConfPath": "/var/lib/docker/containers/c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa/hostname",
        "HostsPath": "/var/lib/docker/containers/c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa/hosts",
        "LogPath": "/var/lib/docker/containers/c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa/c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa-json.log",
        "Name": "/mysql",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/data/mysql/data:/var/lib/mysql",
                "/data/mysql/log:/var/log/mysql"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "3306/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "3306"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                42,
                244
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": [],
            "BlkioDeviceWriteBps": [],
            "BlkioDeviceReadIOps": [],
            "BlkioDeviceWriteIOps": [],
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/01dedce078bd1c2af754487cee12c86cab6d987950101d380dfded0cbdaa12df-init/diff:/var/lib/docker/overlay2/319aac45583cc5f754f5deb1e73ec5276ebfe5f9665db0e397ac5b54c366869a/diff:/var/lib/docker/overlay2/4a6898e42bda63895dcdf49a5209a0d5e52af1faa7b2aba00a7773777f4c11e2/diff:/var/lib/docker/overlay2/8478b01f22db70f2eb5f24672de76e48e8cc31dc906ce1285382c5c015ec5181/diff:/var/lib/docker/overlay2/3c0e9db579de29a2c0019f34386195799cc76f65f85e2cca45cf9abb77c57bc1/diff:/var/lib/docker/overlay2/d6adf9ed222557d6da87f1b1174bc01694aabad814b1dfab6400d2ced00792c8/diff:/var/lib/docker/overlay2/de5f9a8002b2e064d9b07b0c5c83d0b5c3799e90ad48c5da13c17174e5a67864/diff:/var/lib/docker/overlay2/c4a0c15baa3c90adb6045d6073ab5dcc5af9b701109e9733132cf1cfec8e98af/diff:/var/lib/docker/overlay2/905e17d8eb5b1f3d7789cf06b4cfd679a751edd94b3ad81f8f7bc6f245b1d827/diff:/var/lib/docker/overlay2/e208f33a0338b61d869dfe8ad278d9660485838e45648f40c667e49136bc1e59/diff:/var/lib/docker/overlay2/a08238867e2ab34e2ec90e427210518ec5644784120d16ae366a3c4cce4fa2d8/diff",
                "MergedDir": "/var/lib/docker/overlay2/01dedce078bd1c2af754487cee12c86cab6d987950101d380dfded0cbdaa12df/merged",
                "UpperDir": "/var/lib/docker/overlay2/01dedce078bd1c2af754487cee12c86cab6d987950101d380dfded0cbdaa12df/diff",
                "WorkDir": "/var/lib/docker/overlay2/01dedce078bd1c2af754487cee12c86cab6d987950101d380dfded0cbdaa12df/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/data/mysql/data",
                "Destination": "/var/lib/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/data/mysql/log",
                "Destination": "/var/log/mysql",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "c10bb6d74719",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3306/tcp": {},
                "33060/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "MYSQL_ROOT_PASSWORD=root",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "GOSU_VERSION=1.16",
                "MYSQL_MAJOR=innovation",
                "MYSQL_VERSION=8.2.0-1.el8",
                "MYSQL_SHELL_VERSION=8.2.1-1.el8"
            ],
            "Cmd": [
                "mysqld"
            ],
            "Image": "mysql",
            "Volumes": {
                "/var/lib/mysql": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "63732c0dc9176da4496fd6a75980f955a66ae8d5e7b99dcf3f6c48430de271bb",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/63732c0dc917",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "f00da04ad0469c7c6d5e7d1a02bb92d429db67bffc642dd1af246ed2e73a293a",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]

实例解释

容器唯一标识和创建时间

  • Id: c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa 是容器的唯一标识符,用于识别具体的容器实例。
  • Created: 2024-01-22T16:38:51.768765699Z 表示容器创建的时间。

容器启动配置

  • Path: docker-entrypoint.sh 是容器启动时执行的脚本。
  • Created: 2024-01-22T16:38:51.768765699Z 表示容器创建的时间。

容器启动配置

  • Path: docker-entrypoint.sh 是容器启动时执行的脚本。
  • Paused: false 表示容器没有被暂停。
  • Restarting: false 表示容器没有在尝试重启。
  • OOMKilled: false 表示容器没有被OOM(Out of Memory)机制杀掉。
  • Dead: false 表示容器没有死亡。
  • Pid: 0 表示主进程的ID,通常在容器停止时为0。
  • ExitCode: 0 表示容器正常退出。
  • Error: 空字符串表示容器退出时没有错误。
  • StartedAt: 2024-05-23T09:33:17.914478642Z 表示容器上次启动的时间。
  • FinishedAt: 2024-05-23T09:48:06.466321364Z 表示容器上次停止的时间。

镜像信息

  • Image: sha256:a76e521c029290a5e42acd182b67a66b8bf1c42045e4a6977ee21e46a5fe6083 是容器使用的镜像的摘要信息。

容器配置文件路径

  • ResolvConfPath: 容器使用的 DNS 解析配置文件 resolv.conf 的路径。
  • HostnamePathHostsPath: 分别是容器的 hostnamehosts 文件的路径,用于配置容器的网络主机名。
  • LogPath: 容器日志文件的路径。

容器名称和存储驱动

  • Name: "/mysql" 是容器的名称。
  • Driver: overlay2 是 Docker 用来存储镜像和容器数据的存储驱动。

容器网络配置

  • NetworkMode: default 表示容器使用的是默认的网络模式。
  • PortBindings: 显示端口映射详情,3306/tcp 映射到宿主机的 3306 端口。

容器存储配置

  • Mounts: 列出了容器的挂载点,包括类型、源路径、目标路径等。

"/data/mysql/data:/var/lib/mysql""/data/mysql/log:/var/log/mysql" 分别表示宿主机上的 /data/mysql/data/data/mysql/log 目录挂载到容器内的 /var/lib/mysql/var/log/mysql

容器安全和资源配置

  • CgroupnsMode: host 表示容器使用宿主机的控制组命名空间。
  • IpcMode: private 表示容器有私有的 IPC 命名空间。

容器运行时配置

  • ConsoleSize: [42, 244] 表示容器的标准输入和输出的控制台大小。
  • CpuShares, Memory, NanoCpus: 这些字段为 0 表示容器没有特定的 CPU 和内存资源限制。
  • OomScoreAdj: 0 表示容器的OOM(Out of Memory)杀死分数调整,负值表示较低的杀死优先级。

图形驱动配置

  • GraphDriver: 包含有关 Docker 使用的图形驱动的信息,这里是 overlay2

容器环境变量

  • Env: 列出了容器的环境变量,包括 MySQL 的版本信息和 root 用户的密码。

容器配置摘要

  • Config: 包括容器的配置摘要,如命令、环境变量、卷、工作目录等。

网络设置

  • NetworkSettings: 包含容器的网络设置,如网络模式、端口映射、网络接口等。


以上字段提供了容器的全面视图,包括它的配置、状态、资源限制、挂载卷、网络设置和环境变量。这些信息对于容器的调试、维护和管理至关重要。# 解读 MySQL 容器信息:docker inspect 输出详解

在 Docker 中,docker inspect 命令提供了一种方法来获取容器或镜像的详细底层信息。以下是针对您提供的 MySQL 容器信息的具体解释:

容器唯一标识和创建时间

  • Id: c10bb6d74719b1c121f501f27ed1d5b6cf3f5a24a1a28b0ac53728e3ae5015aa 是容器的唯一标识符,用于识别具体的容器实例。
  • Created: 2024-01-22T16:38:51.768765699Z 表示容器创建的时间。

容器启动配置

  • Path: docker-entrypoint.sh 是容器启动时执行的脚本。
  • Args: ["mysqld"] 是传递给 docker-entrypoint.sh 脚本的参数,用于启动 MySQL 服务。

容器状态

  • Status: exited 表示容器已经退出。
  • Running: false 表示容器当前没有运行。
  • Paused: false 表示容器没有被暂停。
  • Restarting: false 表示容器没有在尝试重启。
  • OOMKilled: false 表示容器没有被OOM(Out of Memory)机制杀掉。
  • Dead: false 表示容器没有死亡。
  • Pid: 0 表示主进程的ID,通常在容器停止时为0。
  • ExitCode: 0 表示容器正常退出。
  • Error: 空字符串表示容器退出时没有错误。
  • StartedAt: 2024-05-23T09:33:17.914478642Z 表示容器上次启动的时间。
  • FinishedAt: 2024-05-23T09:48:06.466321364Z 表示容器上次停止的时间。

镜像信息

  • Image: sha256:a76e521c029290a5e42acd182b67a66b8bf1c42045e4a6977ee21e46a5fe6083 是容器使用的镜像的摘要信息。

容器配置文件路径

  • ResolvConfPath: 容器使用的 DNS 解析配置文件 resolv.conf 的路径。
  • HostnamePathHostsPath: 分别是容器的 hostnamehosts 文件的路径,用于配置容器的网络主机名。
  • LogPath: 容器日志文件的路径。

容器名称和存储驱动

  • Name: "/mysql" 是容器的名称。
  • Driver: overlay2 是 Docker 用来存储镜像和容器数据的存储驱动。

容器网络配置

  • NetworkMode: default 表示容器使用的是默认的网络模式。
  • PortBindings: 显示端口映射详情,3306/tcp 映射到宿主机的 3306 端口。

容器存储配置

  • Mounts: 列出了容器的挂载点,包括类型、源路径、目标路径等。

"/data/mysql/data:/var/lib/mysql""/data/mysql/log:/var/log/mysql" 分别表示宿主机上的  /data/mysql/data/data/mysql/log 目录挂载到容器内的 /var/lib/mysql/var/log/mysql

容器安全和资源配置

  • CgroupnsMode: host 表示容器使用宿主机的控制组命名空间。
  • IpcMode: private 表示容器有私有的 IPC 命名空间。

容器安全和资源配置

  • CgroupnsMode: host 表示容器使用宿主机的控制组命名空间。
  • IpcMode: private 表示容器有私有的 IPC 命名空间。
  • CpuShares, Memory, NanoCpus: 这些字段为 0 表示容器没有特定的 CPU 和内存资源限制。
  • OomScoreAdj: 0 表示容器的OOM(Out of Memory)杀死分数调整,负值表示较低的杀死优先级。

图形驱动配置

  • GraphDriver: 包含有关 Docker 使用的图形驱动的信息,这里是 overlay2

容器环境变量

  • Env: 列出了容器的环境变量,包括 MySQL 的版本信息和 root 用户的密码。

容器配置摘要

  • Config: 包括容器的配置摘要,如命令、环境变量、卷、工作目录等。

网络设置

  • NetworkSettings: 包含容器的网络设置,如网络模式、端口映射、网络接口等。

以上字段提供了容器的全面视图,包括它的配置、状态、资源限制、挂载卷、网络设置和环境变量。这些信息对于容器的调试、维护和管理至关重要。

结语

理解 docker inspect 命令的输出可以帮助您更好地管理和调试 Docker 容器。通过这些详细的信息,您可以获得容器的配置、状态、资源使用情况等关键数据,这对于维护和优化容器化应用至关重要。


分享一个有趣的 学习链接

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
42 2
|
8天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
4天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
2天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
1天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
8 1
|
5天前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
22 1
|
7天前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
7天前
|
JavaScript 开发者 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
7天前
|
持续交付 开发者 Docker
Docker容器化技术实战指南
Docker容器化技术实战指南
23 1
|
7天前
|
安全 Docker 微服务
深入理解Docker容器技术:从基础到实践
深入理解Docker容器技术:从基础到实践