Docker

Docker

  • docker就是基于go语言开发的一种容器技术,基于linux内核,对进程封装隔离,属于操作系统层面的虚拟化技术,由于隔离的进程独立于宿主机和其他隔离的进程,所以叫做容器,创建和停止都十分迅速,资源需求远远低于虚拟机
  • 为什么用docker,更快速的交付部署,高效的部署和扩容,更高的资源利用率,docker也叫码头工人,以前安装软件都是散装的,而使用docker都是使用的镜像,而镜像也可以理解为集装箱
  • 主机级虚拟化(每个主机单独内核):

    • 类型一:在硬件上直接安装

    • 类型二:vmware EXSI,kvm

  • 容器级虚拟化(同一内核级):

    • docker

  • Chroot 它是一个 UNIX 操作系统上的系统调用,用于将一个进程及其子进程的根目录改变到文件系统中的一个新位置,让这些进程只能访问到该目录
  • docker都隔离了什么

    • IPC进程直接通信,不能跨空间

    • UTS、Mount文件系统挂载点、IPC、PID、User用户、Network网络

    • 使用linux内核级的namespaces名称空间实现隔离,内核版本都要在3.8以上

  • CPU资源和内存分配
  • 容器都是运行在内核上,要是有一个容器一直吃cpu对系统会造成影响,cpu属于可压缩行资源 得不到就挂着,但是内存属于非可压缩资源,不够就会挂掉

    • cpu在内核级使用cgroups进行比例型分配或者核数,内存使用空间分配

 

docker部署python项目

docker镜像构建

linux Container(容器)

  • docker是基于lxc实现的

  • lxc-create,template(就像脚本一样)

  • lxc帮我们创建空间,使用模板快速的构建

 

docker(镜像文件)

  • docker因为镜像简化了容器的使用难度,docker一个容器中只运行一个进程

 

docker编排工具

  • nmp

  • machine+swarm+compose

  • mesos+marathon

  • kubernetes --> k8s

  • libcontainer -->runC

 

docker基础使用

docker是c/s,ce社区版,ee企业版

 

docker安装

  • 安装docker源
    • 下载清华docker-ce源

      wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

    • 将下载下来的docker-ce.repo文件进行修改为清华源地址
      • vim /etc/yum.repos.d/docker-ce.repo
      • # 替换命令
        %s@https://download.docker.com/@https://mirrors.tuna.tsinghua.edu.cn/dockerce/@
    • 查看镜像源是否加载命令:   yum repolist
    • 指定版本安装命令:  yum install docker-ce-18.06.0.ce

docker镜像加速

  • 加速方式
    • docker cn
    • 阿里云加速
    • 中国科技大学加速
  • 配置加速
    • mkdir /etc/docker
    • vim /etc/docker/daemon.json
    • {
      "registry-mirrors": ["https://registry.docker-cn.com"]
      }
      #也可以添加两个
      {
      "registry-mirrors":
      ["https://fvn7v6mj.mirror.aliyuncs.com","https://registry.docker-cn.com"]
      }

       

  • 启动docker
    • systemctl start docker.service
  • 版本查看命令 : docker version
  • 详情信息命令 : docker info

 

镜像管理

  • 搜索镜像
    • docker search nginx
  • 下载镜像
    • docker image pull nginx:1.14-alpine
    • docker images  列出镜像

容器管理

 

docker-compose

yum install docker-compose

部署:docker_compose up -d

docker-compose.yml

# 查看docker网络 

docker network ls

version: '3'   # 指定docker——compose版本
services:
  postgres: # 服务名称,可以任意取值
    image: rkproblem:1.0.0     # 镜像
    container_name: rkproblem   # 起名 容器名称,不是必填
    restart: always             # 启动方式
    networks: -postgresql       # 指定网络        
    ports:
      - "8080:8080"
    environment:               # 环境变量 ** 重点

          TZ:Asia/Shanghai
          POSTGRES_USER:postgres
          POSTGRES_PASSWORD:postgres_pass
         #depends_on: # 启动以来 ,测试用 等其他服务启动在启动
      # -postgres
    volumes: # 物理映射
      - 物理机镜像地址:容器映射地址
volumes:   data: networks:   postgresql:     external:       name:postgresql

 

posted @ 2020-08-12 17:52  驰念  阅读(142)  评论(0编辑  收藏  举报