• Docker简介与安装


    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    一个完整的Docker有以下几个部分组成

    序号 组成部分
    1 Docker Client客户端
    2 Docker Daemon守护进程
    3 Docker Image镜像
    4 Docker Container容器

    Docker架构

    Docker使用客户端--服务器(c/s)架构模式,使用远程API来管理和创建Docker容器。Docker

    容器通过Docker镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类

    Docker 面向对象
    容器 对象
    镜像

    Docker采用C/S架构,Docker daemon作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。客户端和服务端即可以运行在一台机器上,也可通过socket或者RESTful API来进行通信

    Docker daemon 一般在宿主主机后台上运行,等待接收来自客户端的消息。Docker客户端则为用户提供一系统可执行命令,用户通过使用这些命令实现跟Docker daemon交互

    Docker架构图

    1586853652436

    Docker三在核心要素:镜像(Image)、容器(Container)、仓库(Registry)

    镜像(Image)

    打包了业务代码及运行环境的包,是静态的文件,不能直接对外提供服务
    

    容器(Container)

    镜像的运行时,可以对外提供服务。本质上讲是利用namespace和cgroup等技术在宿主机 创建的独立的虚拟空间
    

    仓库(Registry):

    (1)公有仓库,如:Docker Hub,阿里,网易等
    (2)私有仓库,企业内部搭建
       Docker Registry,Docker官方提供的镜像仓库存储服务
       Harbor,是Docker Registry的更高级封装,它提供友好的Web UI界面,角色和用户权    限管理,用户操作审计等功能
    (3)镜像访问地址形式:registry.devops.com/demo/hello:latest,若没有前面的url地址,则默认会去寻找Docker Hub中的镜像,若没有tag标签,则使用latest作为标签
    (4)公有仓库中,一般存在下面几类镜像
       1)操作系统基本镜像(CentOS,ubuntu,suse,alpine等)
       2)中间件(nginx,redis,mysql,tomcat等)
       3)语言编译环境(python,java,golang等)
       4)业务镜像(django-demon等)
    

    1586853355999

    Linux内核提供了6种namespace隔离的系统调用,如下所示

    namespace 系统调用参数 隔离内容
    UTS CLONE_NEWUTS 主机名或域名
    IPC CLONE_NEWIPC 信号量、消息队列和共享内存
    PID CLONE_NEWPID 进程编号
    Network CLONE_NETWORK 网络设备、网络端口等
    Mount CLONE_NEWNS 挂载点(文件系统)
    User CLONE_NEWUSER 用户组和用户

    Docker安装

    1.配置宿主机网卡转发

    ##查看是否开启宿主机网卡转发功能
    [root@docker ~]# sysctl -a | grep -w net.ipv4.ip_forward
       net.ipv4.ip_forward = 0     #查询出来的结果为0,说明此宿主机没有开启网卡转发功能
    
    #开启宿主机网卡转发功能
    [root@docker ~]# cat > /etc/sysctl.d/docker.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    EOF
    

    1586854976743

    2.添加docker源

    [root@docker ~]# curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    [root@docker ~]# curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    [root@docker ~]# yum clean all && yum makecache
    

    3.查看源中可用版本

    [root@docker ~]# yum list docker-ce --showduplicates | sort -r
    

    1586855357708

    4.安装指定版本或最新版的Docker

    #安装指定版本的Docker
    [root@docker ~]# yum -y install docker-ce-18.09.9
    
    #安装最新版本的Docker
    [root@docker ~]# yum -y install docker-ce
    

    1586855404483

    5.配置源加速

    ![1586856304696](https://img2020.cnblogs.com/blog/1178971/202004/1178971-20200414181126714-1463780489.png)#创建Docker目录
    [root@docker ~]# mkdir -p /etc/docker
    
    #配置源加速
    [root@docker ~]# cat > /etc/docker/daemon.json << EOF
    {
        "exec-opts": ["native.cgroupdriver=systemd"],
        "log-driver": "json-file",
        "log-opts": {
             "max-size": "100m"
        },
        "insecure-registries": ["https://hub.mfyxw.com"],  #非安全的仓库可以在insecure-registries中添加
        "registry-mirrors": ["https://jltw059v.mirror.aliyuncs.com"]
    }
    EOF
    

    1586856287956

    6.设置开机自启并立即启动服务

    [root@docker ~]# systemctl enable --now docker
    
    

    1586858894526

    7.查看docker信息

    [root@docker ~]# docker info
    
    

    1586858948914

  • 相关阅读:
    elk2
    elk
    skywalking学习ppt
    Spring Boot]SpringBoot四大神器之Actuator
    黑马程序员spring data jpa 2019年第一版本
    css总结7:盒子模型理解
    css总结5:px、em、rem区别介绍
    css总结4:input 去掉外边框,placeholder的字体颜色、字号
    css总结3:Flex 布局教程:Flex-demos(转)
    css总结2:Flex 布局教程:Flex 语法(转)
  • 原文地址:https://www.cnblogs.com/Heroge/p/12699921.html
Copyright © 2020-2023  润新知