笔记:Docker 从入门到实践-1

起源:

Linux 容器(LXC)技术类似于沙盒(SandBox)的概念,让进程在隔离的“容器”中运行,是Docker 容器的基础。Docker做了进一步封装,使得用户操作更简单。Docker 容器就像要给快速轻量级的虚拟机一样。

和虚拟机的比较:广泛引用的图

传统的虚拟化方式中部署一个应用,并不是只有十几MB的应用本身和依赖项,还要包括十几GB的Guest OS.

Docker虚拟化方式部署一个应用,只包含应用和它所需的依赖项。容器作为一个独立的进程运行在Host OS 的用户空间,和其他进程共享系统内核,这样既能像虚拟机一样进行资源分配和隔离,又更加的轻便高效。

 

基本概念:

容器:Container 运行态。 容器是实际运行的一个进程,容器进程模拟了一个运行环境,应用部署在这个虚拟的环境上运行。容器可以被启动,开始,停止,删除。容器之间相互隔离,保证安全平台。

镜像:Image 容器模板。 就像对象的类一样,为docker创建容器提供规格说明。即容器是什么样子的。镜像是只读的,从一个镜像启动一个容器时候创建一层可写层作为最上层,容器中的修改都保存在最上层的可写层。

仓库/注册服务器:Repository 保存镜像的地方。仓库提供存储,复用,共享,分发 镜像的功能。公共仓库(public)和私有仓库(private).最大的公共仓库是Docker Hup,国内公开仓库Docker Pool。私有仓库可以建立在用户的本地网络中。注册服务器就是提供仓库功能的服务器,一个注册服务器中可以建立多个仓库。类似git和github,git是版本控制系统,github是托管的网络版本控制系统,在github的服务器上可以创建多个库存放代码。

镜像名称: [REGISTRY_HOST/][USER_NAME/][IMAGE_NAME][:TAG]。完整的镜像名称由两部分组成<仓库名>/<镜像名>。 仓库名=仓库在注册仓库服务器上的访问url,镜像名=镜像名:tag, 如果不指定tag 则用默认tag=latest。在docker hub上由docker公司维护的镜像其名称是单个名字,有其他用户分享的镜像其名称是加了用户前缀,类似: user_name/image_name.

私有仓库:

Docker提供了在用户本地创建仓库的方法,docker-registry是docker提供的构建本地仓库的工具,其作为docker的一个容器在本地运行。可以从官方网站获取registry镜像,然后启动容器。

docker run -d -p 5000:5000  -v /opt/data/registry:/tmp/resigtry myregistry

#-p 参数用于做端口映射,把宿主机的端口5000(前)映射到容器的端口5000(后)。                                                                          #-v 参数用于把镜像存放在容器中的位置/tmp/registry映射到宿主机的/opt/data/registry.                                                                  # myregistry是本地运行的私有仓库容器的名字。

curl命令可以用来查询本地仓库中的镜像:

curl http://host_ip[:port]/v1/search

curl http://host_ip[:port]/v2/_catalog

查询结果形如:{“description":"", "name": "localhost:5000/test_image"}

本地仓库的配置模板被称为flavor,配置文件中预定义一些flavor,一个flavor针对于一种场景,如PROD/DEV/TEST/COMMON 等环境使用不同的flavor。 通过设置环境变量export SETTING_FLAVOR=dev 指定当前启用的flavor。

 

配置示例:config_sample.yaml

common: #flavor名称
         loglevel: info
         search_backend: "_env: SEARCH_BACKEND"
         ......         

prod:
        loglevel: warn
        storage: s3
        s3_access_key: _env: AWS_S3_ACCESS_KEY  #_env 表示由环境变量自定义
        s3_search_key: _env: AWS_S3_SECRET_KEY      
        ......

dev:
       loglevel: debug
       storage: local
       storage_path: /home/myself/docker
  
test:
       storage: local
       storage_path: /tmp/tmpdockrtmp

        

 

    

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值