Docker Compose 文件中网络配置

左心房为你撑大大i 提交于 2019-11-30 03:47:07

1、external_links方式

(1)连接同一台服务器的不在同一个docker compose yaml文件的容器:可以使用external_links方式,但是要配置网络模式。

(2)网络模式配置与使用:

  • 配置:
networks:
  ca-ha:
    driver: bridge
  • 使用:
    - ca-ha
  • 注意:

(1)要将各个yaml文件的父路径名称一致。否则创建出来的网络模式不一样,导致相互连接不上。

(2)如果两个yaml文件中都配置了相同名称的网络,谁先启动容器创建这个网络,后启动的容器发现同名的网络模式已经存在就不再创建了。

以下就是,两个yaml文件存放的父路径名不一样,导致创建的网络名称也不一样,一个是start-up_ca_ha,一个是database_ca_ha。

2、extra_hosts方式

(1)连接不痛服务器的容器时,可以使用extra_hosts方式,例如:

extra_hosts:
  - database:192.168.125.162

#3、使用例子

  • 数据库容器启动yaml文件
version: '3.6'

networks:
  ca-ha:
    driver: bridge

services:
  raybaas-ca-database-ha:
    image: mysql:5.7.22
    container_name: raybaas-ca-database-ha
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root20180315
      - MYSQL_DATABASE=ca_database_ha
    ports:
      - 3308:3306
    volumes:
      - ../datadir:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro
    networks:
      - ca-ha
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --innodb-flush-log-at-trx-commit=0

  • ca容器启动yaml文件
version: "3.6"

networks:
  ca-ha:
    driver: bridge

services:
  raybaas-ca-ha-1:
    image: openjdk:8u181-jdk
    container_name: raybaas-ca-ha-1
    ports:
      - 9006:8080 
      - 50056:50051
    restart: always
    environment:
      - CA_DATABASE_HOST=database
      - CA_DATABASE_PORT=3306 #如果是external_links模式,就要用数据库容器内端口3306,如果是extra_hosts模式,就要用数据库容器外部端口3308
      - CA_DATABASE_NAME=ca_database_ha
      - CA_DATABASE_USERNAME=root
      - CA_DATABASE_PASSWORD=root20180315
      - CA_SIGN_ALGORITHM=SM2 # 签名算法 可选的有 RSA,SM2 默认为SM2
    working_dir: /opt/app
    external_links:
      - raybaas-ca-database-ha:database #外部容器映射内部调用的别名
    volumes:
      - ../app:/opt/app #运行jar包放置目录,包括秘钥,日志等
      - /etc/localtime:/etc/localtime:ro
    networks:
      - ca-ha
    command: java -jar raybaas-ca-portal-4.0.0-SNAPSHOT.jar
#    extra_hosts:
#      - database:192.168.125.162
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!