有没有用过 Docker Engine API 的弟兄~问一个小问题

https://docs.docker.com/engine/api/v1.40/#

POST /containers/create 这个 api 的入参有个 [ Volumes ] 字段

Volumes

An object mapping mount point paths inside the container to empty objects.

想问下这个 Volumes 啥意思,把我看迷糊了,我以为是把 host 路径映射到 container 路径的 map,试了一下发现不是啊。那这个是啥?

阅读 2.4k
1 个回答

Volumes 这里指的是 Docker的Volumes 方式,而不是 bind mounts方式。

Docker 数据管理的三种方式:Docker数据管理-Volume,-bind-mount和tmpfs-moun

你设置并启动docker start xx后,可以 docker inspect xx 查看:

 "Mounts": [
            {
                "Type": "volume",
                "Name": "84829294580aff39ea679320242b0e8c9f9c0d260415fe11d7595f1e3da5aed7",
                "Source": "/var/lib/docker/volumes/84829294580aff39ea679320242b0e8c9f9c0d260415fe11d7595f1e3da5aed7/_data",
                "Destination": "/var/log",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],

可以看到Volumes的用途。

附上我的 请求报文:

{
    "Image":"tomcat:9",
    "Volumes": {
        "/var/log": { }
    },
    "ExposedPorts": {
        "8080/tcp": {}
    },
    "HostConfig": {
        "PortBindings": {
            "8080/tcp": [
                {
                    "HostPort": "8080" 
                }
            ]
        }
    }
}

如果需要 bind mounts方式,则配置 HTTP 报文中 HostConfig 下面的 Binds,自行参考 Docker engine API。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题