• Docker


    Docker

    1、什么是Docker?

      开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。

      它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

      Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

      容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。

    2、Docker vs VM

      VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中。

      Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

      Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

      

    3、相关概念。

    Docker是CS架构,主要有两个概念:

    • Docker daemon: 运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互
    • Docker client: Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通信并将结果返回给用户,Docker client也可以通过socket或者RESTful api访问远程的Docker daemon

      

      

      了解了Docker的组成,再来了解一下Docker的三个主要概念:

    • Docker image:镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。
    • Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
    • Docker hub/registry: 共享和管理Docker镜像,用户可以上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。

    4、安装 Docker。

    yum install docker // 安装 
    
    service docker start // 启动
    
    chkconfig docker on // 开机启动
    
    docker version // 查看docker版本,或测试docker是否启动

     5、感受 Docker。
      Docker 中国官方镜像加速可通过registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。

    修改系统中docker对应的配置文件即可,如下:

    vi  /etc/docker/daemon.json
    #添加后
    {
        "registry-mirrors": ["https://registry.docker-cn.com"],
        "live-restore": true
    }

      下载镜像,并运行窗口。

    docker pull library/hello-world //下载镜像
    
    
    docker images // 查看镜像
    #显示结果
    REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
    docker.io/hello-world           latest              f2a91732366c        3 months ago        1.848 kB
    
    
    
    docker run hello-world // 运行镜像
    #显示结果
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    ...

    6、Docker 常用命令。

    docker pull image_name // 摘取镜像
    
    docker images // 查看已下载的镜像
    
    // 删除镜像
    docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af30
    
    docker ps // 查看运行中的容器
    
    docker ps -a // 查看所有容器
    
    // 启动、停止、重启容器
    docker start container_name/container_id
    docker stop container_name/container_id
    docker restart container_name/container_id
    
    // 进入容器
    docker attach container_name/container_id
    
    // 删除容器
    docker rm container_name/container_id
    
    docker info // 查看 Docker 信息
    
    // 从 Docker 上下载某个镜像
    docker pull centos:latest
    docker pull centos:latest

    参考:http://blog.51cto.com/ityouknow/2083688

  • 相关阅读:
    电视剧,电影,动漫推荐
    004CH32V307(WCH单片机)学习开发添加文件夹分组,添加文件,头文件包含设置
    1CH32V307+ESP8266程序升级篇(自建物联网平台)CH32V307通过ESP8266使用http或https下载程序文件升级程序(单片机程序轮训检查更新)
    102CH32V307(WCH单片机)学习开发系统滴答定时器
    104CH32V307(WCH单片机)学习开发串口
    020CH32V307(WCH单片机)学习开发关于warning: 'at' attribute directive ignored, 把数据存储在flash的固定位置
    0CH32V307+ESP8266基本控制篇(自建物联网平台)整体运行测试Android使用APUConfig配网绑定ESP8266,并通过MQTT实现远程通信控制
    0CH32V307+ESP8266基本控制篇(自建物联网平台)整体运行测试微信小程序使用APUConfig配网绑定ESP8266,并通过MQTT实现远程通信控制
    02CH32V307+ESP8266基本控制篇(自建物联网平台)硬件使用说明
    IDEA配置Maven(详细版)
  • 原文地址:https://www.cnblogs.com/tekkaman/p/9940062.html
Copyright © 2020-2023  润新知