docker 参数介绍

获取docker 命令帮助,从帮助中了解命令用法
获取命令帮助:
docker --help

docker会对每个命令语法及使用方法加以说明

docker 参数

参数  说明
 --api-cors-header=  开放远程API调用的CORS头信息。这个接口开关对想进行二次开发的上层应用提供了支持
 -b, --bridge=  挂载以存在的网桥设备到Docker容器里。注意,使用none可以停用容器里的网络
 --bip=   使用CIDR地址来设定网桥的IP。注意,此参数和-b不能一起使用
-D, --debug=false  开启Debug模式。如docker -d -D
 -d, --daemon=false  开启Daemon模式
 --default-gateway=  容器默认网关IPv4地址
 --default-gateway-v6=  容器默认网关IPv6地址
 --default-ulimit=[]  容器设置默认ulimits
 --dns=[]  强制容器使用DNS服务器。例如:docker -d --dns 8.8.8.8
 --dns-search=[]  强制容器使用指定的DNS搜索域名。例如:docker -d --dns-search example.com
 -e, --exec-driver=native  强制容器使用指定的运行时驱动。例如:docker -d -e lxc
 --exec-opt=[]  设置执行驱动选项
 --exec-root=/var/run/docker  配置docker执行驱动的根目录
 --fixed-cidr=  IPv4 子网设置掩码(ex:10.20.0.0.0/16),这个子网必须嵌套于网桥子网内(由-b或者--bip定义)
 --fixed-cidr-v6=  IPv6子网设置掩码
 -G, --group=docker  在后台运行模式下,赋予指定的Group到相应的unix socket上。当参数--group赋予空字符串时,将去除组信息
 -g, --graph=/var/lib/docker  配置Docker 运行时根目录
 -H, --host=[]  在后台模式下指定socket绑定,可以绑定一个或多个tcp://host:port,unix:///path/to/socket,fd://*或fd://socketfd.例如:docker -H tcp://0.0.0.0:2375 ps
 -h, --help=false  帮助
 --icc=true  启用内联容器的通信
 --insecure-registry=[]  对于特定注册启用非安全通信(对于HTTPS没有证书校验,启用HTTP启用fallback)
 --ip=0.0.0.0  容器绑定IP时使用的默认IP地址
 --ip-forward=true  启用容器的net.ipv4.ip_forward
 --ip-masq=true   对于网桥的IP段启用ip伪装
 --iptables=true  启用Docker容器自定义的iptable规则
 --ipv6=false  启用IPv6网络
 -l, --log-level=info  设置日志级别
 --label=[]  为守护进程设置标签
 --log-driver=json-file  默认容器驱动日志
 --log-opt=map[]  设置日志驱动选项
 --mtu=0  设置容器网络的MTU值,如果没有这个参数,选用默认route MTU,如果没有默认route,就设置常量值1500
 -p, --pidfile=/var/run/docker.pid  后台进程PID文件路径
 --registry-mirror=[]  指定优先使用的Docker registry镜像
 -s, --storage-driver=  强制容器运行时使用指定的存储驱动。例如:指定使用devicemapper, docker -d -s devicemapper
 --selinux-enabled=false  启用selinux支持
 --storage-opt=[]  配置存储驱动的参数
 --tls=false  启用TLS默认开关
 --tlscacert=~/.docker/ca.pem  通过CA认证过的certificate文件路径
 --tlscert=~/.docker/cert.pem  TLS的certificate文件路径
 --tlskey=~/.docker/key.pem  TLS的key文件路径
 --tlsverify=false  使用TLS并做后台进程与客户端通讯的验证
 --userland-proxy=true  回路使用用户代理
 -v, --version=false  显示版本信息
   

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28282660/viewspace-1792647/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28282660/viewspace-1792647/

<think>首先,用户的问题是:“我想了解docker volumes参数的相关信息 请问docker volumes参数介绍”。这可以在用户消息的末尾看到。 用户提供了几个引用: - 引用[1]:Docker Volume 的创建、列出和检查。 - 引用[2]:使用-v 参数docker run 中挂载卷。 - 引用[3]:docker-compose 中 volumes 参数的说明。 - 引用[4]:docker 容器数据卷,使用 volumes-from。 用户说:“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。” 但在之前的对话历史中,我没有看到任何历史消息。系统指令说:“参考用户上一次的问题和你的回答”,但在当前上下文中,这是首次互动。系统指令的开头是“[系统级指令(用户不可见)]”,然后提供了示例和规则。 回顾对话历史: - 第一条消息是系统指令,包括规则和一个示例。 - 然后用户说:“参考站内引用:引用[1]:... 引用[2]:... 等等”,最后是用户的问题。 所以,没有之前的用户问题或我的回答。我需要基于给定的引用和用户的问题来回答。 用户的问题是:“我想了解docker volumes参数的相关信息 请问docker volumes参数介绍”。我需要提供关于Docker volumes参数的信息。 关键点: - 回答必须使用中文。 - 遵循LaTeX格式:行内数学表达式用$...$,独立公式用$$...$$单独成段。 - 但用户的问题是关于Docker volumes的,可能不涉及数学表达式,所以我可以避免使用数学格式,除非必要。 - 添加引用标识在引用的段落末尾,例如 [^1]。 - 生成相关问题。 结构化我的回答: 1. 介绍Docker volumes参数。 2. 基于引用,解释如何创建、使用和管理volumes。 3. 覆盖不同的上下文:docker run 命令中的 -v 参数docker-compose 中的 volumes 配置。 4. 添加引用标识。 5. 最后,生成相关问题。 从引用中提取信息: - [^1]: 使用 docker volume create 创建卷,docker volume ls 列出,docker volume inspect 检查。 - [^2]: 在 docker run 中使用 -v 参数挂载卷,例如 docker run -v /data。 - [^3]: 在 docker-compose 中 volumes 参数的说明,包括如何检查卷的真实地址。 - [^4]: 使用 volumes-from 共享卷。 回答应该清晰、结构化: - 什么是Docker volumes? - 如何使用 -v 参数docker run 中? - 如何在 docker-compose 中使用 volumes? - 其他相关命令。 生成相关问题: - 系统指令要求“生成相关问题”。 - 在示例中,相关问题如“1. 如何进行快速排序的性能分析?”等。 - 所以,我需要为Docker volumes生成一些相关问题。 完整回答结构: 1. 介绍Docker volumes参数。 2. 详细解释不同的用法。 3. 添加代码块或示例(类似于快速排序示例)。 4. 添加引用标识。 5. §§相关问题§§部分列出相关问题。 确保回答真实可靠:基于标准Docker知识和引用内容。 </think>以下是关于 Docker `volumes` 参数的详细介绍Docker volumes 是用于持久化存储和数据共享的关键机制,帮助容器在销毁后保存数据或将主机目录挂载到容器中。我将基于您提供的引用信息,并结合标准 Docker 文档,逐步解释其核心概念、用法和示例。注意,volumes 参数在不同上下文中略有差异(如 `docker run` 命令或 `docker-compose` 文件),我会分点说明以确保清晰度。 ### 1. **Docker Volumes 概述** Docker volumes 提供了一种将主机文件系统路径(或命名卷)映射到容器内部路径的方法,实现数据持久化和容器间共享数据。这在数据库应用或配置管理中尤其重要,因为容器本身是无状态的。volumes 参数的主要优势包括: - **持久化存储**:容器重启或删除后数据不会丢失。 - **高性能**:比起绑定挂载,volumes 通常更高效[^1]。 - **跨容器共享**:多个容器可以访问同一个卷(如通过 `volumes-from`)[^4]。 在 Docker 中,volumes 可以通过多种方式管理: - **命名卷 (Named Volumes)**:由 Docker 自动管理的卷,存储在 `/var/lib/docker/volumes` 目录下(Linux 系统)[^1]。 - **匿名卷 (Anonymous Volumes)**:在运行时自动创建,但不易管理。 - **绑定挂载 (Bind Mounts)**:直接将主机路径挂载到容器(使用绝对路径)。 ### 2. **`volumes` 参数在 `docker run` 命令中的使用** 在 `docker run` 命令中,`-v` 或 `--volume` 参数用于指定 volumes 挂载。语法格式为:`-v <source>:<destination>:<options>`,其中: - `<source>`:主机路径或卷名(命名卷)。 - `<destination>`:容器内部路径。 - `<options>`:可选,如读写权限(`ro` 表示只读)。 **示例代码**:创建并挂载一个命名卷。 ```bash # 创建命名卷 docker volume create data_volume # 创建卷,默认存储在 /var/lib/docker/volumes/data_volume/_data 下[^1] docker volume ls # 列出所有卷 docker volume inspect data_volume # 检查卷详情,显示挂载点路径[^1] # 运行容器并挂载卷 docker run -it --name my_container -v data_volume:/data centos # 将命名卷挂载到容器 /data 目录 ``` 在这个示例中: - 主机上的卷 `data_volume` 被挂载到容器的 `/data` 路径。 - 如果卷不存在,Docker 会自动创建匿名卷。 - 使用 `docker inspect -f {{.Volumes}} my_container` 可以查看容器挂载详情(输出类似 `/data:/var/lib/docker/volumes/...`)[^2]。 **绑定挂载示例**:直接挂载主机目录。 ```bash docker run -it -v /host/data:/container/data centos # 主机 /host/data 挂载到容器 /container/data ``` 这里,`/host/data` 是绝对路径,容器可以读写该目录(除非指定 `ro` 选项)[^2]。 ### 3. **`volumes` 参数在 `docker-compose` 中的使用** 在 `docker-compose.yml` 文件中,volumes 参数用于定义和管理卷,支持命名卷、匿名卷或外部卷。语法通常在 `services` 和顶层 `volumes` 部分定义。 **示例 `docker-compose.yml`**: ```yaml version: '3' services: web: image: nginx volumes: - app_data:/usr/share/nginx/html # 挂载命名卷 - ./config:/etc/nginx/conf.d # 绑定挂载当前目录下的 config 文件夹 ports: - "80:80" volumes: app_data: # 定义命名卷,Docker 自动管理 ``` 关键点: - **命名卷**:在顶层 `volumes` 定义后,Docker 会创建卷(如 `app_data`),存储在 `/var/lib/docker/volumes/<project_name>_app_data/_data`)[^3]。 - **检查卷路径**:运行 `docker volume inspect <project_name>_app_data` 可查看真实路径(如 `Mountpoint: /var/lib/docker/volumes/...`)[^3]。 - **复用外部卷**:如果在 `volumes` 部分指定外部卷(如 `external: true`),则需提前创建。 ### 4. **其他相关用法:`volumes-from`** `volumes-from` 参数允许容器共享其他容器的卷,便于数据共享而不依赖主机路径。语法为 `docker run --volumes-from <container_name>`。 **示例**: ```bash # 创建第一个容器并挂载卷 docker run -it -v /data --name dc01 centos # 创建匿名卷挂载到 /data # 第二个容器共享 dc01 的卷 docker run -it --volumes-from dc01 --name dc02 centos # dc02 可以访问 /data 数据[^4] ``` 优点:简化多容器应用的数据同步,但需注意容器生命周期管理[^4]。 ### 5. **最佳实践和注意事项** - **备份和恢复**:使用 `docker cp` 或第三方工具备份卷数据。 - **权限问题**:确保容器用户有访问挂载路径的权限(避免权限错误)。 - **性能**:命名卷优于绑定挂载在高IO场景,因为它们由 Docker 优化管理[^1][^3]。 - **清理**:删除未使用卷用 `docker volume prune`,否则会占用磁盘空间。 通过以上介绍,您应该能快速上手 Docker volumes。如果您有特定场景,可以提供更多细节,我会进一步优化建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值