zoukankan      html  css  js  c++  java
  • docker第二篇:docker compose

    compose是编排的意思。为什么需要docker compose呢?

    docker-compose命令要在docker-compose.yml文件所在目录中执行,否则会报错。

    docker-compose.yml中内容:

    network_mode:可选值有bridge、host、none、service:[service name]、container:[container name/id]

    bridge模式下,

    host模式下,docker不会为容器创建单独的network namespace,而是共享宿主机的network namespace,在容器中执行ifconfig和在宿主机上执行ifconfig,结果是一样的,且宿主机占用的端口和容器内应用占用的端口一致。假如容器内应用占用10000端口,则访问http://宿主机IP:10000,就可以访问到容器内的应用了。就好像把容器内应用暴露到宿主机中了。在宿主机上用netstat命令查出PID,用ps命令查看此PID,和在容器中用netstat命令查出PID,用ps命令查看此PID的结果是一样的,都可以看出来容器内应用的启动命令是什么。有3个注意点,1、此时ports是不生效的,可以不设置ports,设置了也不生效。如果是docker run命令起来的话,同时指定-p xx:yy --network=host,会提示WARNING: Published ports are discarded when using host network mode的。2、因为占用了宿主机的端口,所以只能创建一个容器,再起一个容器,如果不改变容器内应用占用的端口的话,就起不来,启动会报address already in use。3、用docker ps或者docker-compose ps查看时,PORTS列值是空的,没有数据。

    none模式下,

    如果不指定network_mode的话,如果用docker-compose up在前端启动,则可以看到会输出Creating network "xxx_default" with the default driver这样的日志。这个时候,在宿主机执行ifconfig命令,可以看到,

    在宿主机安装docker的命令补全工具bash-completion。

  • 相关阅读:
    js 复制到剪切板
    200-api网关工程过滤器设置
    199-Zuul配置文件
    198-Feign有什么方便之处呢?
    12-sublime中文配置
    098-Servlet为什么直接相应给浏览器的信息会出现乱码?
    097-为什么我们在SpirngBoot中设置了响应头的编码,浏览器解析出来依然回事乱码呢?
    196-为什么SpringBoot框架中不能直接使用@WebServlet的注解?
    195-如何获取Spring容器中的对象?
    194-Spring注入属性的几个注解?
  • 原文地址:https://www.cnblogs.com/koushr/p/12938861.html
Copyright © 2011-2022 走看看