• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解Docker-compose networks 的例子

    今天实验了下 docker 下的网络设置,记录一下过程,以免后面忘记。

    (系统:Centos 7.4 ,docker 版本:18.03.1-ce, docker-compose version 1.18.0)

    cat docker-compose.yml 
    version: '3'
    services: 
     test1:
      image: busybox:latest     # 镜像为 busybox
      entrypoint:          # 容器启动后执行 top 命令,使容器没法立即退出
       - top
      networks:
       backend:     # 使用指定的网络 backend, 并且设置网络别名为 test1,
        aliases:    # 设置网络别名后,可以在其他容器中 ping test1 访问到该容器
         - test1
    
     test2:
      image: busybox:latest
      entrypoint:
       - top
      networks:
       backend:
        aliases:
         - test2
    
    networks:
     backend:

    启动

    docker-compose up -d
    
    docker ps -a
    CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES
    4d05ceb2088d    busybox:latest   "top"        5 seconds ago    Up 4 seconds              ibaboss_test2_1
    f4ccafa24664    busybox:latest   "top"        5 seconds ago    Up 4 seconds              ibaboss_test1_1
    
    docker exec -it 4d05ceb2088d /bin/sh
    / # ping test1
    PING test1 (172.19.0.2): 56 data bytes
    64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.061 ms
    64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.062 ms
    
    ping ibaboss_test1_1
    PING ibaboss_test1_1 (172.19.0.2): 56 data bytes
    64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.045 ms
    64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.056 ms
    64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.061 ms
    
    # 在网络中可以通过 容器名字或者网络的别名 进行通信
    

    Compose 的容器名称格式是:<项目名称><服务名称><序号>

    虽然可以自定义项目名称、服务名称,但是如果你想完全控制容器的命名,可以使用这个标签指定:

    container_name: app
    cat docker-compose_v1.yml 
    version: '3'
    services: 
     test1:
      image: busybox:latest
      entrypoint:
       - top
      container_name: test1
      networks:
       - backend
    
     test2:
      image: busybox:latest
      entrypoint:
       - top
      container_name: test2
      networks:
       - backend
    
    networks:
     backend:
    
    

    启动

    docker-compose -f docker-compose_v1.yml up -d
    
    docker ps -a
    CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES
    132859fc77c2    busybox:latest   "top"        About a minute ago  Up About a minute            test2
    cd0a78dc9bd4    busybox:latest   "top"        About a minute ago  Up About a minute            test1
    
    docker exec -it 132859fc77c2 ping test1
    PING test1 (172.19.0.2): 56 data bytes
    64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.070 ms
    64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.068 ms
    64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.059 ms
    
    

    补充:

    docker compose 多容器共用网络问题

    前几天计划使用docker compose 编写一个多容器共用一个容器网络,结果总是报错,今天又试了一下才发现是端口绑定的问题造成的,端口只能绑定在产生网卡的容器上,绑定在其它窗口上就会报错,如下代码 mysql服务共用了nginx的网卡,在mysql里使用了port:3306时就会运行失败,将3306移到nginx上启动就成功了。

    version: '3.3'
    services:
    nginx:
    image: "lnp_php"
    # container_name: "lnmp_nginx"
    ports:
    - "80:80"
    - "443:443"
    - "3306:3306"
    expose:
    - "3306"
    volumes:
    - /home/www/php:/home/www:rw
    # depends_on:
    # - mysql
    # links:
    # - mysql
    mysql:
    image: "mysql"
    # container_name: "lnmp_mysql"
    # ports:
    # - "3306:3306"
    # expose:
    # - "3306"
    volumes:
    - /home/docker/conf/mysql_w:/etc/mysql:rw
    environment:
    - MYSQL_ROOT_PASSWORD=123456
    depends_on:
    - nginx
    network_mode: "service:nginx"
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:Linux上也有10个流行的Windows应用程序
    下一篇:浅谈docker-compose网络设置之networks
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解Docker-compose networks 的例子 详解,Docker-compose,networks,