(十)Docker-V 详解

本文详细解析了Docker中如何挂载宿主机目录至容器,包括挂载的基本语法、注意事项及特殊情况下的处理方法,如相对路径的解释和宿主机目录自动生成等。

1. 作用

挂载宿主机的一个目录。

2. 案例

譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

# docker run -it -v /test:/soft centos /bin/bash

冒号":"前面的目录是宿主机目录,后面的目录是容器内目录

3. 注意事项

3.1 容器目录不可以为相对路径

[root@localhost ~]# docker run -it -v /test:soft centos /bin/bash
invalid value "/test:soft" for flag -v: soft is not an absolute path
See 'docker run --help'.

3.2 宿主机目录如果不存在,则会自动生成

3.3 宿主机的目录如果为相对路径呢?通过inspect查看

这次,我们换个目录名test1试试

# docker run -it -v test1:/soft centos /bin/bash

再到宿主机上查看是否新增了一个/test1目录,结果没有,是不是因为我用的是相对路径,所以生成的test1目录在当前目录下,结果发现还是没有。那容器内的/soft目录挂载到哪里去了?通过docker inspect命令,查看容器“Mounts”那一部分,我们可以得到这个问题的答案。

   "Mounts": [
        {
            "Name": "test1",
            "Source": "/var/lib/docker/volumes/test1/_data",
            "Destination": "/soft",
            "Driver": "local",
            "Mode": "z",
            "RW": true
        }
    ],

可以看出,容器内的/soft目录挂载的是宿主机上的/var/lib/docker/volumes/test1/_data目录

原来,所谓的相对路径指的是/var/lib/docker/volumes/,与宿主机的当前目录无关.

 

参考:https://blog.youkuaiyun.com/hnmpf/article/details/80924494

转载于:https://www.cnblogs.com/shix0909/p/11124466.html

<think>好的,用户需要关于docker-compose的详细教程和使用说明。我需要结合用户提供的三个引用来构建回答,同时遵循用户的格式要求。首先,用户提到要使用中文回答,并且注意LaTeX的格式,但看起来这次的问题主要是关于docker-compose,所以可能数学公式用的不多,但需要确保符合格式规则。 首先,我应该整理docker-compose的安装步骤。根据引用[2],安装docker-compose是通过curl命令下载二进制文件到/usr/local/bin目录,然后赋予执行权限。需要详细写出这些步骤,确保用户能跟着操作。同时,引用[1]提到了docker-ce的安装,但用户现在可能已经安装了docker,所以是否需要包括这部分?用户的问题明确是关于docker-compose,但可能需要前提条件,所以可以简要提及需要先安装docker,参考引用[1]的步骤。 接下来是docker-compose的基本使用,根据引用[3],用户需要知道常用命令,如up、down、build、ps等。需要解释每个命令的作用,并给出示例,比如docker-compose up -d。同时,用户可能需要一个示例的docker-compose.yml文件结构,展示如何定义服务、网络、卷等。引用[3]提到必须在含有docker-compose.yml的目录中执行命令,这点很重要,需要强调。 另外,用户可能需要知道如何管理多个容器,比如scale命令,但根据引用[3],scale可能在新版本中被移除了,所以需要注意准确性,或者建议使用部署配置来扩展服务实例。 还要考虑用户可能遇到的问题,比如权限问题,或者如何查看日志,使用docker-compose logs命令。此外,停止和删除容器的正确步骤,使用down命令会删除资源,而stop只是停止,这些区别需要说明清楚。 最后,生成相关问题,可能需要包括安装问题、常见错误、与Dockerfile的比较,以及如何扩展服务等。确保问题覆盖用户可能感兴趣的后续内容。 需要检查回答结构是否清晰,分步骤,有代码块示例,并正确引用来源。例如,在安装部分引用[2],命令解释引用[3]。同时确保所有代码块使用正确的语法,比如bash和yaml的标记。最后,相关问题要自然相关,帮助用户深入理解docker-compose的使用。</think>### Docker-compose 详细教程与使用说明 #### 一、安装与验证 1. **前提条件** 需先安装 Docker 引擎(参考引用[1]中的 `docker-ce` 安装步骤)[^1] ```bash sudo apt-get install docker-ce ``` 2. **安装 docker-compose**(引用[2]方法) ```bash sudo curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 3. **验证安装** ```bash docker-compose --version ``` --- #### 二、核心概念与文件结构 1. **docker-compose.yml 文件** 定义多容器服务的 YAML 配置文件,示例如下: ```yaml version: '3' services: web: image: nginx:alpine ports: - "80:80" db: image: postgres:13 environment: POSTGRES_PASSWORD: example ``` 2. **核心字段说明** - `version`: Compose 文件格式版本 - `services`: 定义容器服务列表 - `volumes`: 数据卷配置 - `networks`: 自定义网络配置 --- #### 三、常用命令(引用[3]整理)[^3] | 命令 | 作用 | 示例 | |------|------|------| | `up` | 创建并启动容器 | `docker-compose up -d` | | `down` | 删除容器、网络和卷 | `docker-compose down` | | `build` | 重新构建镜像 | `docker-compose build` | | `logs` | 查看容器日志 | `docker-compose logs -f web` | | `exec` | 进入容器执行命令 | `docker-compose exec web sh` | | `ps` | 显示运行状态 | `docker-compose ps` | --- #### 四、典型工作流程 1. **启动服务栈** ```bash docker-compose -f docker-compose.yml up -d ``` 2. **动态扩展服务实例**(需在配置中定义) ```bash docker-compose up --scale web=3 -d ``` 3. **更新服务配置** ```bash docker-compose down && docker-compose up -d --build ``` --- #### 五、高级技巧 1. **环境变量注入** 使用 `.env` 文件或运行时参数: ```yaml environment: DB_PASSWORD: ${DB_PASSWORD} ``` 2. **多环境配置** 通过 `-f` 指定多个配置文件: ```bash docker-compose -f docker-compose.yml -f docker-compose.prod.yml up ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值