在 Docker Compose 中,可以通过 volumes 字段将宿主机的文件或目录挂载到容器中。这样可以实现数据持久化、共享数据或配置等。以下是一些常见的挂载方式和示例。

1. 挂载单个文件

如果你想将宿主机上的一个特定文件挂载到容器中,可以使用以下格式:

version: '3.8' services: image: nginx volumes: - ./nginx.conf:/etc/nginx/nginx.conf # 将宿主机的 nginx.conf 挂载到容器中

在这个示例中, ./nginx.conf 是宿主机上的文件路径, /etc/nginx/nginx.conf 是容器中的目标路径。

2. 挂载整个目录

你也可以挂载整个目录:

version: '3.8' services: image: myapp volumes: - ./data:/usr/src/app/data # 将宿主机的 data 目录挂载到容器中

这里, ./data 是宿主机的目录, /usr/src/app/data 是容器中的目标目录。

3. 使用命名卷

命名卷是在 Docker 中创建的独立卷,可以在多个容器之间共享。使用命名卷的示例:

version: '3.8' services: image: myapp volumes: - mydata:/usr/src/app/data # 使用命名卷 volumes: mydata: # 定义命名卷

在这个例子中, mydata 是一个命名卷,Docker 会自动管理它的生命周期。

4. 使用绑定挂载(Bind Mounts)

如果需要更灵活的挂载,可以使用绑定挂载。示例如下:

version: '3.8' services: image: myapp volumes: - /path/on/host:/path/in/container # 指定宿主机和容器中的路径

这里的 /path/on/host 是宿主机上的路径, /path/in/container 是容器内的路径。

5. 其他选项

你还可以使用其他选项来配置挂载:

version: '3.8' services: image: myapp volumes: - ./data:/usr/src/app/data:ro # 只读挂载 - ./config:/usr/src/app/config:delegated # 使用代理挂载

在这个例子中, :ro 表示只读挂载,而 :delegated 是一个挂载模式,它允许容器快速访问文件,而在后台同步更改。

假设你有一个应用程序需要一个配置文件和数据目录,下面是一个完整的 Docker Compose 示例:

version: '3.8' services: image: nginx volumes: - ./nginx.conf:/etc/nginx/nginx.conf # 挂载配置文件 - ./data:/usr/share/nginx/html # 挂载数据目录

在这个配置中, nginx.conf data 目录都被挂载到容器中,允许 Nginx 使用宿主机上的配置和数据。

通过以上方法,你可以灵活地将宿主机的文件和目录挂载到 Docker Compose 容器中。这对于配置、持久化数据和共享文件非常有用。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:CSDNWF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 04-09
文章 目录 单机编排之 Docker Compose 基础环境准备从 docker compose 启动单个容器从 docker compose 启动多个容器定义数据 挂载 其他常用命令实现单机版的 HA+Nginx+Tomcat: 单机编排之 Docker Compose 当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用 docker 单机编排工具 docker compose Docker Compose docker 容器的一种编排服务, docker compos
方式一:修改配置文件(需停止 docker 服务) 1、停止 docker 服务 systemctl stop docker .service(关键,修改之前必须停止 docker 服务) 2、vim /var/lib/ docker /containers/container - ID/config.v2.json 修改配置文件中的 目录 位置,然后保存退出  “MountPoints”:{“/home”:{“Source”:”/ docker ”,”Destination”:”/home”,”RW”:true,”Name”:””,”Driver”:””,”Type”:”bind”,”Propagation”:”rpr
docker 容器得 挂载 docker run - d - - name pa - org - v /home/apps/pa - org:/home/apps pa - org:v1.4.0 /home/apps/pa - org:linux服务器上得 目录 /home/apps: docker 容器内部得 目录 可以进入容器里面去查看 在/home/apps/pa - org 目录 里面放入打好得jar包以及start.sh 然后...