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。

  • 相关阅读:
    压测 swoole_websocket_server 性能
    Laravel本地环境搭建:Homestead开发环境的部署
    laravel5.5框架中视图间如何共享数据?视图间共享数据的两种方法
    laravel框架模型model的创建与使用方法
    laravel学习:主从读写分离配置的实现
    《梦断代码》阅读笔记一
    数组结对开发
    对搜狗输入法的评价
    几个一
    对于大家的评审提出改进方案
  • 原文地址:https://www.cnblogs.com/koushr/p/12938861.html
Copyright © 2011-2022 走看看