docker-compose.yml

这篇博客展示了如何通过docker-compose文件来部署和配置Elasticsearch、Kibana和Redis服务。详细列出了每个服务的配置参数,包括端口映射、环境变量、数据持久化以及网络设置。

cat docker-compose.yml 
version: '2'
services:
#  docker run -tid --name baota -p 80:80 -p 443:443 -p 8888:8888 -p 888:888 
# --privileged=true --shm-size=1g 
# --restart always 
# -v ~/wwwroot:/www/wwwroot pch18/baota

  coinbank_baota:
    image: pch18/baota
    container_name: coinbank_baota
    restart: always
    environment:
      - privileged=true
      - shm-size=1g
    volumes:
      - ./wwwroot:/www/wwwroot
    ports:
      - 80:80
      - 443:443
      - 8888:8888
      - 888:888
    networks:
      coin_bank:
        ipv4_address: 10.0.18.10

  coinbank_es00:
    image: elasticsearch:7.13.2
    container_name: coinbank_es00
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms2g -Xmx2g
    volumes:
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elasticsearch/data:/usr/share/elasticsearch/data
      - ./elasticsearch/plugins:/usr/share/elasticsearch/plugins
    networks:
      mall4cloud:
        ipv4_address: 10.0.18.12

  coinbank_kibana:
    image: kibana:7.13.2
    container_name: coinbank_kibana
    restart: always
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_URL: http://10.0.18.12:9200
      ELASTICSEARCH_HOSTS: http://10.0.18.12:9200
    depends_on:
      - mall4cloud-elasticsearch
    networks:
      mall4cloud:
        ipv4_address: 10.0.18.13

  coinbank_redis:
    image: redis:6.2
    container_name: coinbank_redis
    restart: always
    ports:
      - 6379:6379
    networks:
      mall4cloud:
        ipv4_address: 10.0.18.14


networks:
  coin_bank:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 10.0.18.0/24
        gateway: 10.0.18.1
 

### docker-compose.yml常用命令 - `docker-compose up`:该命令会根据`docker-compose.yml`文件创建并启动所有服务的容器。如果容器已经存在,会尝试重新创建并启动。可以使用`-d`参数在后台运行容器,例如`docker-compose up -d`。 - `docker-compose start`:启动已经存在但处于停止状态的容器- `docker-compose down`:停止并删除`docker-compose.yml`文件中定义的所有容器、网络和命名卷。 - `docker-compose ps`:查看`docker-compose.yml`文件中定义的服务的容器状态。 ### docker-compose.yml文件说明 `docker-compose.yml`文件是一个YAML格式的文件,用于定义和配置多个Docker容器的服务。以下是一个简单的示例: ```yaml version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf ``` - `version`:指定`docker-compose.yml`文件的版本,不同版本支持的功能有所不同。 - `services`:定义多个服务,每个服务对应一个容器- `web`:服务的名称,可以自定义。 - `image`:指定容器使用的镜像。 - `ports`:将容器的端口映射到宿主机的端口。 - `volumes`:将宿主机的目录或文件挂载到容器中。 ### docker compose执行顺序 在`docker-compose.yml`中,默认情况下,服务之间没有严格的启动顺序。如果需要确保某个服务在另一个服务之后启动,可以使用`depends_on`关键字。例如: ```yaml version: '3' services: db: image: mysql:latest web: image: nginx:latest depends_on: - db ``` 上述示例中,`web`服务会在`db`服务启动之后再启动。 ### 命名卷和挂载卷 - 命名卷:是一种由Docker管理的卷,使用`volumes`关键字定义。例如: ```yaml version: '3' services: web: image: nginx:latest volumes: - myvolume:/usr/share/nginx/html volumes: myvolume: ``` - 挂载卷:将宿主机的目录或文件直接挂载到容器中。例如: ```yaml version: '3' services: web: image: nginx:latest volumes: - ./html:/usr/share/nginx/html ``` ### yml和yaml区别 `.yml`和`.yaml`本质上没有区别,它们都是YAML文件的扩展名,在Docker Compose中可以互换使用。 ### 常见问题及解决方法 如果执行`docker compose -f docker/docker-compose.yml up -d`命令报错,可以按以下方法解决: - 检查 Docker 配置和代理:若通过代理连接网络,需检查 Docker 配置中的代理设置是否正确。可以在 Docker Desktop 设置中配置代理,或者编辑`daemon.json`文件来设置代理,示例配置如下: ```json { "registry-mirrors": ["https://hub-mirror.c.163.com"], "insecure-registries": ["your.custom.registry"] } ``` - 查看容器是否已创建:使用`docker ps -a`命令查看所有容器的状态。若容器已创建但出现问题,可尝试删除并重新创建容器: ```bash docker compose down docker compose up -d ``` - 环境变量警告:对于环境变量未设置的警告,检查`.env`文件或`docker-compose.yml`中是否有相关的环境变量声明,确保必要的环境变量已正确设置。若这些变量不是关键的,可以忽略这些警告 [^1][^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值