Docker-Compose挂载本地目录示例

该示例展示了如何使用Docker-Compose将本地目录挂载到容器内的不同路径,包括配置文件挂载、权限管理以及多个服务的配置,如portal、log、redis和proxy,确保服务能正确读取和使用宿主机上的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker-Compose挂载本地目录示例

# 执行时自动获取当前绝对路径并进行填充写入配置文件


volumes:
  - ./Proxy-nginx:/etc/nginx

## Demo
 portal:
    image: goharbor/harbor-portal:v2.2.1
    container_name: harbor-portal
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
      - NET_BIND_SERVICE
    volumes:
      - type: bind
        source: ./common/config/portal/nginx.conf
        target: /etc/nginx/nginx.conf


---
services:
  log:
    image: goharbor/harbor-log:v2.2.1
    container_name: harbor-log
    restart: always
    dns_search: .
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
    volumes:
      - /mnt/000.Docker/003.Harbor/log//:/var/log/docker/:z
      - type: bind
        source: ./common/config/log/logrotate.conf
        target: /etc/logrotate.d/logrotate.conf
      - type: bind
        source: ./common/config/log/rsyslog_docker.conf
        target: /etc/rsyslog.d/rsyslog_docker.conf

---
  redis:
    image: goharbor/redis-photon:v2.2.1
    container_name: redis
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    volumes:
      - /mnt/000.Docker/003.Harbor/Data/redis:/var/lib/redis



---
  proxy:
    image: goharbor/nginx-photon:v2.2.1
    container_name: nginx
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
      - NET_BIND_SERVICE
    volumes:
      - ./common/config/nginx:/etc/nginx:z
      - /mnt/000.Docker/003.Harbor/Data/secret/cert:/etc/cert:z
      - type: bind
        source: ./common/config/shared/trust-certificates
        target: /harbor_cust_cert



---
  core:
    image: goharbor/harbor-core:v2.2.1
    container_name: harbor-core
    env_file:
      - ./common/config/core/env
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - SETGID
      - SETUID
    volumes:
      - /mnt/000.Docker/003.Harbor/Data/ca_download/:/etc/core/ca/:z
      - /mnt/000.Docker/003.Harbor/Data/:/data/:z
      - ./common/config/core/certificates/:/etc/core/certificates/:z
      - type: bind
        source: ./common/config/core/app.conf
        target: /etc/core/app.conf
      - type: bind
        source: /mnt/000.Docker/003.Harbor/Data/secret/core/private_key.pem
        target: /etc/core/private_key.pem
      - type: bind
        source: /mnt/000.Docker/003.Harbor/Data/secret/keys/secretkey
        target: /etc/core/key
      - type: bind
        source: ./common/config/shared/trust-certificates
        target: /harbor_cust_cert
### 回答1: 当使用Docker Compose创建多个容器时,可以使用`docker-compose networks`指定网络,以使容器之间可以相互通信。以下是一个使用`docker-compose networks`的示例: ``` version: '3' services: web: build: . ports: - "5000:5000" networks: - frontend - backend redis: image: "redis:alpine" networks: - backend networks: frontend: backend: ``` 在这个例子中,我们定义了两个服务:`web`和`redis`。`web`服务是一个Web应用程序,使用`Dockerfile`构建,并将端口映射到主机的端口5000。`redis`服务使用Redis的官方镜像,并只连接到后端网络。 最后,我们定义了两个网络:`frontend`和`backend`。`web`服务连接到两个网络,而`redis`服务只连接到`backend`网络。这样,`web`服务可以与`redis`服务通信,而`redis`服务只能与`web`服务通信。 ### 回答2: docker-compose是一个用于定义和管理多个Docker容器的工具。docker-compose.yml是一个配置文件,用于描述容器服务,包括容器运行参数、网络配置、数据卷挂载等。 其中,networks字段用于定义容器服务的网络配置。可以通过名称指定已创建的网络,也可以通过直接定义网络的方式创建新网络。 例如,假设我们有一个简单的web应用,由两个容器组成:一个是前端容器,一个是后端容器。我们希望这两个容器之间可以通过网络进行通信。 下面是一个使用docker-compose networks的示例: ```yaml version: "3.9" services: frontend: image: frontend-image networks: - frontend_network backend: image: backend-image networks: - frontend_network - backend_network networks: frontend_network: backend_network: ``` 在上面的示例中,我们定义了两个网络:frontend_network和backend_network。同时,我们给前端容器和后端容器分别指定了它们需要连接的网络。 当我们使用docker-compose up启动这个应用时,docker-compose会根据这个配置文件来创建并连接相应的网络。 通过这样的网络配置,前端容器和后端容器就可以通过容器名来进行通信,比如前端容器可以通过http://backend:8080来访问后端容器提供的服务。 总结:docker-compose networks可以帮助我们在配置文件中定义容器服务的网络配置,从而实现容器之间的通信。使用网络名称或直接定义网络都可以满足我们对网络的需求。以上是一个使用docker-compose networks的示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WinJayX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值