关于Centos中docker-compose内网无法访问的问题和Apollo部署

Apollo内网开发环境演示(此方法不适合生产环境,生产环境请参考集群部署)

构建流程
 cd /opt 
# 设置版本
 export VERSION=1.7.0-SNAPSHOT
# 下载属于1.7的版本源代码
 git clone https://github.com/ctripcorp/apollo  
 cd apollo
# 构建代码
 ./scripts/build.sh
 #复制构建文件和dockerfile
 cp apollo-configservice/target/apollo-configservice-1.7.0-SNAPSHOT-github.zip     apollo-configservice/ 
 cp apollo-adminservice/target/apollo-adminservice-1.7.0-SNAPSHOT-github.zip  apollo-adminservice/
 cp apollo-portal/target/apollo-portal-1.7.0-SNAPSHOT-github.zip  apollo-portal/
 cp apollo-adminservice/src/main/docker/Dockerfile  apollo-adminservice/
 cp apollo-portal/src/main/docker/Dockerfile apollo-portal/
 cp apollo-configservice/src/main/docker/Dockerfile  apollo-configservice/
# 上传docker-compose-apollo.yml并重命名
 rz
 mv docker-compose-apollo.yml  docker-compose.yml
# 创建apollo 内网并添加防火墙例外
 docker network create apolloNet
 firewall-cmd --permanent --zone=trusted --add-interface=br-$(docker network ls | grep apolloNet  | awk 'NR==1' | awk '{print $1}')
 firewall-cmd --reload

# 启动
 docker-compose  up -d
 # 复制sql文件到Container
 docker cp scripts/sql/apolloportaldb.sql  apollo-mysql:/
 docker cp scripts/sql/apolloconfigdb.sql  apollo-mysql:/
# 进入apollo-mysql容器shell
 docker exec  -it  apollo-mysql  bash
# 执行sql初始化
 mysql -u root -p -D mysql
如果不添加防火墙例外,Container内网件是无法访问的,java和mvn需提前安装
docker-compose-apollo.yml 文件内容

version: "2"
 
services:
  apollo-mysql:
    container_name: apollo-mysql
    privileged: true
    image: mysql
    # ports:
    #   - "3306:3306"
    volumes:
      - "/opt/apollo/mysql/data:/var/lib/mysql"    
     # - "/opt/apollo/mysql/conf/my.cnf:/etc/mysql/my.cnf"    #需要预先创建
    environment:
      - MYSQL_ROOT_PASSWORD=root  
    networks:
      - apollo_cover
  apollo-configservice:                                         ##容器服务名
    container_name: apollo-configservice                        ##容器名
    build: apollo-configservice/                                ##Dockerfile路径
    image: apollo-configservice                      ##镜像名 
  #  ports:
  #    - "13080:8080"
    volumes:
      - "/opt/apollo/logs/100003171:/opt/logs/100003171"
    environment:
      - spring_datasource_url=jdbc:mysql://apollo-mysql:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=root
      - spring_datasource_password=root
    depends_on: 
      - apollo-mysql
    networks:
      - apollo_cover
 
  apollo-adminservice:
    container_name: apollo-adminservice
    build: apollo-adminservice/
    image: apollo-adminservice 
 #   ports:
  #    - "13090:8090"
    depends_on:
      - apollo-configservice
      - apollo-mysql
    volumes:
      - "/opt/apollo/logs/100003172:/opt/logs/100003172"
    environment:
      - spring_datasource_url=jdbc:mysql://apollo-mysql:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=root
      - spring_datasource_password=root
    networks:
      - apollo_cover
 
  apollo-portal:
    container_name: apollo-portal
    build: apollo-portal/
    image: apollo-portal  
    ports:
      - "13070:8070"
    depends_on:
      - apollo-adminservice
      - apollo-mysql
    volumes:
      - "/opt/apollo/logs/100003173:/opt/logs/100003173"
    environment:
      - spring_datasource_url=jdbc:mysql://apollo-mysql:3306/ApolloPortalDB?characterEncoding=utf8
      - spring_datasource_username=root
      - spring_datasource_password=root
      - DEV_META=http://apollo-configservice:8080
    networks:
      - apollo_cover
#请创建apolloNet,并添加防火墙例外      
networks:
  apollo_cover:
    external:
      name: apolloNet

访问xxxx:13070就是Apollo的后台,默认账号apollo-->admin

捕获3333333333333311111111111.JPG

你可能感兴趣的:(关于Centos中docker-compose内网无法访问的问题和Apollo部署)