精华内容
下载资源
问答
  • Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。这篇文章主要介绍了Docker容器绑定外部IP和端口的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要给大家介绍了关于Laravel服务容器绑定的几种方式,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 简单实现一个laravelapp容器绑定实例

    千次阅读 2018-03-21 20:31:16
    纵观laravelapp容器里面有一些kernel先行注册的服务,所谓的这些服务就是我们php常用的一些...下面我们用自己的方式实现一个app的容器绑定<?phpclass App implements \ArrayAccess{ private $_bindings = a...

    纵观laravelapp容器里面有一些kernel先行注册的服务,所谓的这些服务就是我们php常用的一些类,laravel预加载的一些框架所用到的类。

    还有一些就是每次单一绑定实例也就是singleton绑定一个共享实例。

    下面我们用自己的方式实现一个app的容器绑定

    <?php
    class App implements \ArrayAccess{
        private $_bindings = array();//服务列表
        private $_instances = array();//已经实例化的服务


        //获取服务
        public function get($name,$params=array()){
            //先从已经实例化的列表中查找
            if(isset($this->_instances[$name])){
                return $this->_instances[$name];
            }


            //检测有没有注册该服务
            if(!isset($this->_bindings[$name])){
                return null;
            }


            $concrete = $this->_bindings[$name]['class'];//对象具体注册内容


            $obj = null;
            //匿名函数方式
            if($concrete instanceof \Closure){
                $obj = call_user_func_array($concrete,$params);
            }elseif(is_string($concrete)){//字符串方式
                if(empty($params)){
                    $obj = new $concrete;
                }else{
                    //带参数的类实例化,使用反射
                    $class = new \ReflectionClass($concrete);
                    $obj = $class->newInstanceArgs($params);
                }
            }


            //如果是共享服务,则写入_instances列表,下次直接取回
            if($this->_bindings[$name]['shared'] == true && $obj){
                $this->_instances[$name] = $obj;
            }


            return $obj;
        }


        //检测是否已经绑定
        public function has($name){
            return isset($this->_bindings[$name]) or isset($this->_instances[$name]);
        }


        //卸载服务
        public function remove($name){
            unset($this->_bindings[$name],$this->_instances[$name]);
        }


        //设置服务
        public function set($name,$class){
            $this->_registerService($name, $class);
        }


        //设置共享服务
        public function setShared($name,$class){
            $this->_registerService($name, $class, true);
        }


        //注册服务
        private function _registerService($name,$class,$shared=false){
            $this->remove($name);
            if(!($class instanceof \Closure) && is_object($class)){
                $this->_instances[$name] = $class;
            }else{
                $this->_bindings[$name] = array("class"=>$class,"shared"=>$shared);
            }
        }


        //检测服务是否存在
        public function offsetExists($offset) {
            return $this->has($offset);
        }


        //获取服务
        public function offsetGet($offset) {
            return $this->get($offset);
        }


        //注册服务,非共享
        public function offsetSet($offset, $value) {
            return $this->set($offset,$value);
        }


        //卸载服务
        public function offsetUnset($offset) {
            return $this->remove($offset);
        }
    }

    展开全文
  • docker 容器绑定hosts

    千次阅读 2019-06-26 16:14:50
    1./etc/hosts, /etc/resolv.conf和/etc/hostname,容器中的这三个文件不存在于镜像,而是存在于/var/lib/docker/containers/<container_id>,在启动容器的时候,通过mount的形式将这些文件挂...

    问题

    最近有个需求需要在docker容器里进行hosts绑定。尝试了将hosts 写在Dockerfile里,构建出镜像,但是启动容器后绑定的hosts会丢失;而且手动进入容器绑定hosts后,重启容器后hosts也会丢失。

    原因

    简单的说,docker容器里的/etc/hosts是动态生成的,重启容器或者由镜像run一个容器时,/etc/hosts会被重新构建,所以无论怎么修改hosts,最后都会被重置。
    另外如果仔细观察可以发现,容器的hosts里有一条容器id的hosts,绑定的是容器内部的ip,而这个ip是会变的,更加说明hosts是动态的。

    172.17.0.2	7049a6a6b2f1
    

    解决方式

    在run 命令 后边加入 --add-host 参数,绑定hosts
    如:

    docker run -d -p 8080:8080 --add-host api.test.com:10.100.33.101 test
    

    参考
    docker修改hosts

    展开全文
  • gridview容器绑定问题

    2015-04-30 09:34:21
    datagridview中一列可以绑定两个字段么?eg: 把如下dgv 数量 种类 颜色 2 苹果 红 4 香蕉 黄 变成: 数量 种类 2 苹果(红) 4 香蕉(黄)
  • 通过-p或-P参数来指定端口映射,使用-P(大写)标记时,docker会随机选择一个端口映射到容器内部开放的网络端口 启动容器docker run -d...-p(小写)则可以指定要映射的端口,并且在一个指定端口上只可以绑定一个容器 doc...

    通过-p或-P参数来指定端口映射,使用-P(大写)标记时,docker会随机选择一个端口映射到容器内部开放的网络端口

    启动容器docker run -d -P training/webapp python app.py,随机分配了32769端口

    访问后,可以链接到training/webapp容器:


    -p(小写)则可以指定要映射的端口,并且在一个指定端口上只可以绑定一个容器

    docker run -d -p () training/webapp python app.py

    ()支持3中形式:ip:hostport:containerport 、ip::containerport 、hostport:containerport


    通过--name来制定,若不指定,docker会随机生成一个容器的名称

    docker inspect可以查看容器的很多信息。查看容器名称可以使用
    docker inspect -f "{{.Name}}" db1

    每次运行都会产生容器,没指定--name就会分配一个名字,可以加上--rm,运行完成之后要自动删除容器

    连接两个容器:

    docker run -d -P --name webapp --link db2:db2 training/webapp python app.py


     

     

     

     

     

     

     

     

    展开全文
  • Docker容器绑定外部IP和端口

    千次阅读 2018-03-29 16:44:00
    Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。 以下操作通过myfirstapp镜像模拟,如何制作myfirstapp镜像请点击此处。 1、外部访问容器容器启动之后,容器中可以运行一些网络应用,通过-p或-...

    Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。

    以下操作通过myfirstapp镜像模拟,如何制作myfirstapp镜像请点击此处

    1、外部访问容器
    容器启动之后,容器中可以运行一些网络应用,通过-p或-P参数来指定端口映射。
    a、用-P(大写)标记时,docker会随机选择一个端口映射到容器内部开放的网络端口上。

    $ docker run -d -P myfirstapp python app.py 
    $ docker ps
    CONTAINER ID  IMAGE       COMMAND  CREATED      STATUS                           PORTS             NAMES
    dbcf5d3290ba  myfirstapp  "python app.py"     4 seconds ago  Up 4 seconds  0.0.0.0:32770->80/tcp   quizzical_engelbart  

    此时访问本机的32770端口就可以访问到容器内web应用提供的界面。

    $ curl http://192.168.1.160:32770/
    <h3>Hello HELLO!</h3><b>Hostname:</b> dbcf5d3290ba<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>

    也可以使用docker logs来查看应用的信息

    $ docker logs dbcf5d3290ba
    * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
    192.168.1.5 - - [29/Mar/2018 06:17:34] "GET / HTTP/1.1" 200 -
    192.168.1.5 - - [29/Mar/2018 06:17:34] "GET /favicon.ico HTTP/1.1" 404 -
    192.168.1.160 - - [29/Mar/2018 06:17:43] "GET / HTTP/1.1" 200 -
    192.168.1.5 - - [29/Mar/2018 06:18:59] "GET / HTTP/1.1" 200 -

     

    b、使用-p(小写)标记时则可以指定要映射的端口,并且在一个指定端口上只可以绑定一个容器,支持的格式有:

    ip:hostport:containerport 
    ip::containerport 
    hostport:containerport
    
    $ docker run -d -p 4000:80 myfirstapp python app.py
    $ docker run -d -p 4001:80 myfirstapp python app.py
    $ curl http://192.168.1.160:4000/
    <h3>Hello HELLO!</h3><b>Hostname:</b> f43ed2810353<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i> 
    $ curl http://192.168.1.160:4001/
    <h3>Hello HELLO!</h3><b>Hostname:</b> f43ed2810353<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i> 

    可以看到本地4000端口已经被映射,换一个端口4001也被映射。

    docker默认会映射本地所有的地址。现在我们来尝试一下映射到指定地址的指定端口

    $ docker run -d -p 127.0.0.1:4000:80 myfirstapp python app.py
    $ curl http://127.0.0.1:4000/ ##访问通过
    $ curl http://localhost:4000/ ##访问通过
    $ curl http://192.168.1.160:4000/ ##访问拒绝
    curl: (7) Failed connect to 192.168.1.160:4000; 拒绝连接

    然后要访问容器中的应用只能通过127.0.0.1这个ip访问。

    接下来是绑定本机的任意端口到容器的80端口,随机分配一个端口

    $ docker run -d -p 127.0.0.1::80 myfirstapp python app.py
    $ docker ps ##127.0.0.1:32770->80/tcp
    $ curl http://127.0.0.1:32770/ ##访问通过
    $ curl http://localhost:32770/ ##访问通过
    $ curl http://192.168.1.160:32770/ ##访问拒绝 


    还可以指定通信协议

    docker run -d -p 5003:80/udp myfirstapp python app.py

     

    2.查看容器绑定和映射的端口及Ip地址

    $ docker port 44de1b0b5312(容器ID)
    80/tcp -> 127.0.0.1:32770

     

    3.注意事项
    a.docker inspect查看容器自己的内部网络和ip地址

    $ docker inspect 44de1b0b5312(容器ID)

     

    b.容器启动绑定多IP

    $ docker run -d -p 5005:5000 -p 5006:80 myfirstapp python app.py #容器ID:44e703c1279a
    $ docker port 44e703c1279a
    5000/tcp -> 0.0.0.0:5005
    80/tcp -> 0.0.0.0:5006

     

    展开全文
  • app 属性访问容器。 1、bind()-简单绑定 $this->app->bind(类 / 接口名 , 类 / 闭包); $this->app->bind('HelpSpot\API', function ($app) { return new HelpSpot\API($app->make('HttpC...
  • laravel5.3 绑定服务容器例子

    千次阅读 2016-11-29 14:30:36
    假设有一个TestServicer 服务类,声明 一个callme方法。我们想在其他类里面很方便的使用,而不是new。 首先创建TestServiceProvider 服务... ...//使用singleton绑定单例 服务容器绑定 $this->app->singleton('tes
  • 本篇文章给大家带来的内容是关于Laravel服务容器绑定与解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助
  • docker容器CPU核心限制(绑定内核)

    千次阅读 2021-03-05 12:25:09
    多核CPU的服务器Docker还可以控制容器运行限定使用哪些CPU内核,可以使用--cpuset-cpus选项来使某些程序独享CPU核心, 以便提高其处理速度,...使新建容器绑定第1~4的核心使用 docker run -itd --cpuset-cpus 0,1,2,3
  • 默认情况下容器运行期间的数据都是存在容器内的,一旦容器被删除则数据就会丢失,所以docker允许在创建容器时为容器绑定一个宿主机的目录,容器可以与主机共享这个目录,默认是读写权限,也可以设置容器只读的权限。...
  • Docker之容器端口绑定本地端口

    千次阅读 2019-08-13 22:22:04
    二、绑定容器端口与本地端口,命令如下: docker run -p 本地端口:容器端口 镜像名称 然后就可以通过本地的浏览器通过本地的端口访问容器了。 三、容器在后台运行,加-d参数,命令如下: d...
  • 绑定,解决, 注入后端数据 代码拆分,仅使用特定拆分所需的服务 在代码拆分和项目中重用服务 影片教学 1.安装 npm i vuejs-service-container 建筑概念 生命周期 创建容器 使用容器作为Vue插件 将内容注入容器...
  • 主要介绍了绑定 Dokcer 容器到主机指定网卡的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 双向绑定:(宿主机和容器之间可以互写内容) 命令:docker run -it -v /宿主机绝对路径:/容器内目录 镜像名 注释:当容器停止的情况,宿主机依然可以写入数据 单向绑定:(只允许宿主机单向往容器内写入内容,容器不...
  • 物理数据库-数据库容器-控件数据绑定关系
  • 之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会...
  • 创建docker01网桥 docker network create docker01 --subnet=10.10.10.0/24 ... 备注:subnet指定一个网段,-o选项可以解决使用ifconfig命令看不到docker01的问题 运行容器时指定IP docker run -itd --net docke...
  • 1.查看需要修改的容器ID (CONTAINER ID) 命令: docker ps 2.然后使用命令停止该容器: docker stop xxx 3.修改容器的端口映射配置文件 vim /var/lib/docker/containers/{container_id}/hostconfig.json 找到如下...
  • 给正在运行的Docker容器动态绑定卷组(动态添加Volume)需求:将物理机的目录/tmp/test挂载到正在运行的容器test(test容器id:955138b6c3ed)中的/src目录github: .../bin/bash ...
  • 容器化API Python包 此存储库为(gRPC)API提供了Python3 API,该API是直接从。 由于它是从协议文件生成的,因此该Python软件包并不旨在成为一个完全Pythonesque的软件包。 结果,gRPC和protoc的通常特质得以体现。 ...
  • Docker部署容器服务中Socket服务绑定端口问题问题描述解决方法 问题描述 在docker部署socket服务中,多端口绑定中无法访问socket服务端口。 解决方法 将socket服务使用“0.0.0.0”作为host进行监听即可。 ...
  • 正常绑定端口,但是通过外网不能连接,抱无法连接服务器。 问题详情:我们要知道8080:80,这个代表的是外网8080端口连接容器80端口,但是我们要知道nginx可能并没有监听80端口。就像我们在一个系统上直接使用tomcat...
  • 容器网络-物理网卡绑定到网桥

    千次阅读 2018-07-02 22:02:23
    这样此机器上的容器就通过这个默认网桥进行通信(容器与宿主机通信也通过网桥),同时达到隔离外部网络的目的。有时候我们有这样的需求:一个宿主机器上的容器可以直接和其他宿主机器上互通网络,这里作为实验,可以用...
  • react-一个小巧的650b集中式状态容器带有Preact组件绑定
  • 原文:WPF: WrapPanel 容器的数据绑定(动态生成控件、遍历) 问题:  有一些CheckBox需要作为选项添加到页面上,但是数目不定。而为了方便排版,我选择用WrapPanel面板来作为父容器。那现在...
  • Docker绑定固定IP/跨主机容器互访

    万次阅读 热门讨论 2017-07-23 22:18:02
    之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 235,295
精华内容 94,118
关键字:

容器绑定