美文网首页
了解docker

了解docker

作者: hi小羊 | 来源:发表于2017-10-13 15:39 被阅读0次
    1. 容器简单介绍
      映像是一个轻量级的/独立的/可执行的包,它包含软件运行所需要的一切,包括代码,runtime,库,环境变量和配置文件等。
      容器是一个运行的映像的实例,与宿主机隔离,在进行配置的情况下,访问主机的文件,端口。
      容器运行本地应用程序的主机的内核。与虚拟机相比,它们具有更好的性能特征,虚拟机只能通过虚拟机管理程序对主机资源进行虚拟访问。容器可以获得本机访问,每一个都在一个进程中运行,比其他可执行文件占内存少。
    2. dockerfile
      使用dockerfile定义容器运行所需的一切,容器内的环境与主机的环境是隔离的,所以需要将内部端口映射到外部,实现对容器内应用的访问。
      例:
    #use default official python runtime
    FROM python
    
    #set proxy
    ENV http_proxy http://myproxy:8080
    ENV https_proxy https://myproxy:8080
    
    #set working directory
    WORKDIR /app
    
    #copy file that needed to run the container
    ADD . /app
    
    #install required moudule
    RUN pip install redis
    
    #run an app when container runs
    CMD ["python", "app.py"] 
    

    在当前目录下,确保app.py, Dockerfile存在,然后构建名为test的映像,设置版本为1

    docker build -t local/test:1 .
    

    最后运行app

    docker run -p hostPort:containerPort test
    

    在我们终止该命令时,容器也相应被停止,使用detached模式使容器保持运行

    docker run -d -p hostPort:containerPort --name=test local/test:1
    
    1. 容器之间的通信
      当安装了docker以后,自动创建3个网络。
    docker network ls
    NETWORK ID          NAME                DRIVER              SCOPE
    b748881b7bba        bridge              bridge              local
    dc63fe79701a        host                host                local
    c31094e7948a        none                null                local
    

    可以看到docker创建的桥接网络,如果创建容器的时候不指定不同的网络的话,那么新创建的容器默认连接到桥接网络

    docker network inspect bridge
    

    链接到默认桥接网络的容器可以通过彼此的ip地址来相互通信,docker不支持自动服务发现,如果想要使用容器的名字实现容器之间的通信,则需要使用用户定义的网络模式,当然一种不推荐的做法是使用docker run --link containerToBeConnected

    相关文章

      网友评论

          本文标题:了解docker

          本文链接:https://www.haomeiwen.com/subject/uenayxtx.html