精华内容
下载资源
问答
  • Mac安装Docker Desktop的要求Mac安装Docker Desktop的要求 Mac安装Docker Desktop的要求 您的Mac必须满足以下要求才能成功安装Docker Desktop: Mac硬件必须是2010或更新的型号,并且Intel的硬件支持内存管理单元...

    Mac安装Docker Desktop的要求

    Mac安装Docker Desktop的要求

    您的Mac必须满足以下要求才能成功安装Docker Desktop:

    Mac硬件必须是2010或更新的型号,并且Intel的硬件支持内存管理单元(MMU)虚拟化,包括扩展页表(EPT)和无限制模式 。您可以通过在终端中运行以下命令来检查计算机是否具有此支持:
    sysctl kern.hv_support

    如果您的Mac支持Hypervisor框架,则命令显示
    kern.hv_support: 1。

    展开全文
  • Docker

    2018-07-12 22:21:27
    简化配置,同一Docker的配置可以在不同 环境中使用,降低了硬件要求和应用环境之间的耦合度. 2.代码的流水线管理.代码从开发者的假期到最终在生产环境上的部署,需要经过很多的中间环境.而每一个中间环境都有自己微小...

    Docker安装与基本使用

    虚拟机系统centOS7 mini

    Docker的应用场景

    1.简化配置,同一Docker的配置可以在不同 环境中使用,降低了硬件要求和应用环境之间的耦合度. 
    2.代码的流水线管理.代码从开发者的假期到最终在生产环境上的部署,需要经过很多的中间环境.而每一个中间环境都有自己微小的蛤贝,Docker给应用提供一个从开发到上线均一致的环境,让代码的流水线变得简单. 
    3.提高开发效率 
    4.隔离应用,使应用松耦合 
    5.快速部署 
    docker [CMD] [options] 
    基本命令与释义 
    attach进入到正在运行的容器 
    build由Dockerfile构建镜像 
    commit由容器的改变创建一个新的镜像 
    cp在容器中复制文件或文件夹到本地文件或文件夹中. 
    logs获取容器日志 
    network管理Docker网络 
    node管理Docker集群节点 
    pause暂停一个或多个容器内的所有进程 
    port列表端口映射或用于容器的特定的映射 
    ps列出容器 
    pull从镜像仓库中拉出镜像 
    push上传镜像 
    rename重命名镜像 
    restart重启一个容器 
    rm 删除容器 
    rmi删除镜像 
    run在容器中运行命令 
    search在Docker Hub中查找镜像 
    service管理Docker服务 
    start启动停止的容器 
    stats显示容器的实时流资源使用统计信息 
    stop停止正在运行的容器 
    swarm管理Docker集群 
    tag将镜像标记到存储库中 
    top显示容器的正在运行的进程 
    volume管理Docker卷

    docker run [options] 
    常用参数与释义(主要介绍docker run)

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; 
    -d: 后台运行容器,并返回容器ID; 
    -i: 以交互模式运行容器,通常与 -t 同时使用; 
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; 
    –name=”nginx-lb”: 为容器指定一个名称; 
    –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致; 
    –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致; 
    -h “mars”: 指定容器的hostname; 
    -e username=”ritchie”: 设置环境变量; 
    –env-file=[]: 从指定文件读入环境变量; 
    –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行; 
    -m :设置容器使用内存最大值; 
    –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/Container: 四种类型; 
    –link=[]: 添加链接到另一个容器; 
    –expose=[]: 开放一个端口或一组端口;

    1.安装Docker 
    这里写图片描述 
    2.加入开机启动 
    这里写图片描述 
    3.启动Docker 
    这里写图片描述 
    4.下载镜像 
    这里写图片描述 
    5.查看本地镜像 
    这里写图片描述 
    6.启动容器 
    这里写图片描述 
    7.查看容器 
    这里写图片描述

    搭建本地镜像仓库

    仓库IP 192.168.247.142

    1.拉取registry镜像 
    这里写图片描述

    2.启动镜像仓库容器并且映射虚拟机端口5000和容器端口5000 
    这里写图片描述

    3.将本地目录/opt/data/registry挂载到容器内目录/tmp/registry中 
    这里写图片描述

    4.用busybox做试验 
    这里写图片描述

    5.在需要拉取镜像的虚拟机上创建/etc/docker/daemon.json(这一步很关键,解决的http和https服务冲突问题) 
    这里写图片描述

    6.向私有仓库中上传镜像

    这里写图片描述

    docker的网络配置

    1.查看docker的所有网络 
    这里写图片描述

    2.指定查看bridge网络的配置 
    这里写图片描述

    3.启动两个busybox做实验,分别是container1和container2 
    这里写图片描述

    4.再次查看bridge,这时可以看到container1和container2已经被加入bridge中了 
    这里写图片描述

    5.也可以进入到container1中,用ifconfig查看网络配置 
    这里写图片描述 
    6.ping 
    这里写图片描述 
    7. 
    这里写图片描述 
    8.自建桥接模式的网络isolated_nw 
    这里写图片描述 
    9.查看网络能看到已经建立的isolated_nw 
    这里写图片描述 
    10.启动container3时指定网络isolated_nw,则可以加入自建网络中 
    这里写图片描述

    Tomcat与Mysql

    这部分我把网上的教程基本都做了一遍,但是由于我对javaweb项目的结构了解不透彻,web应用部署也不熟悉,所以没能达到预期的要求。以下我分别列出Tocmcat和Mysql容器的启动和使用。还有部分参数解释。

    1. docker run -it –rm -p 8888:8080 tomcat:8.0

    虚拟机端口:容器端口 tomcat镜像指定 
    这里写图片描述

    这里写图片描述

    1. docker run –name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 
      指定容器名,mysql密码,镜像

    这里写图片描述

    将mysql与web应用容器相连的命令是: 
    docker run –name some-app –link some-mysql:mysql -d application-that-uses-mysql 
    启动web应用容器,用–link连接mysql容器

    官方文档指出,–link几乎已经废弃

    单容器应用部署实践

    说明:部署一个单页面的应用 
    参考网址:https://github.com/docker/labs/blob/master/beginner/chapters/votingapp.md

    1.启动容器会自动下载dockersanples/static-site镜像 
    这里写图片描述

    2.启动容器 
    这里写图片描述

    3.查看端口 
    这里写图片描述

    4.查看容器运行情况 
    这里写图片描述

    5.在浏览器中输入地址和端口号,就可以看到网页 
    这里写图片描述

    6.创建文件夹flask-app 
    这里写图片描述

    7.flask-app下有四个文件 
    这里写图片描述

    8.构建镜像 
    这里写图片描述

    9.启动容器,将虚拟机8888端口映射到容器的5000端口 
    这里写图片描述

    10.在浏览器中输入网址,查看运行效果 
    这里写图片描述

    多容器应用部署实践

    说明:用docker compose和docker deploy stack 部署 
    参考网址:https://github.com/docker/labs/blob/master/beginner/chapters/votingapp.md 
    应用说明:该应用基于以下镜像搭建 
    Python 
    Node.js 
    redis 
    .net 
    postgress

    1.下载工程 
    这里写图片描述

    2.创建Docker Swarm 
    这里写图片描述

    3.docker stack deploy是在Docker Swarm模式下docker-compose的替代 
    这里写图片描述

    4.查看启动的服务 
    这里写图片描述

    5.查看容器的运行情况 
    这里写图片描述

    6.浏览器中输入虚拟机地址,这是5000端口,是投票服务 
    这里写图片描述

    7.浏览器中输入虚拟机地址,这是5001端口,投票统计服务 
    这里写图片描述

    8.镜像更新,只需要修改虚拟机中的配置文件 
    这里写图片描述 
    9. 
    这里写图片描述

    10.重启app 
    这里写图片描述

    11.在浏览器中查看运行情况 
    这里写图片描述

    12. 
    这里写图片描述
    13. 
    这里写图片描述 
    14. 
    这里写图片描述

    Kubernetes安装和配置

    1.创建多台centOS7 mini 系统的虚拟机备用 
    2.修改主机名 
    这里写图片描述 
    3.设置hosts 
    这里写图片描述 
    4.关闭防火墙 
    这里写图片描述 
    5.安装etcd 
    这里写图片描述 
    6.修改etc配置文件/etc/etcd/etcd.conf 
    这里写图片描述 
    7.安装Docker 
    这里写图片描述 
    8.修改配置/etc/sysconfig/docker 
    这里写图片描述 
    9.将Docker设为开机启动项,启动Docker 
    这里写图片描述 
    10.安装Kubernetes 
    这里写图片描述 
    11.修改/etc/kubernetes/apiserver 
    这里写图片描述 
    12.修改/etc/kubernetes/config 
    这里写图片描述 
    13.启动服务并设置开机项自启动 
    这里写图片描述 
    14.修改/etc/kubernetes/config 
    这里写图片描述 
    15.修改/etc/kubernetes/kubelet 
    这里写图片描述 
    16.启动服务并设置开机自启动 
    这里写图片描述 
    17.在master上查看节点和各节点状态 
    这里写图片描述 
    18.安装flannel 
    这里写图片描述 
    19.修改配置/etc/sysconfig/flanneld 
    这里写图片描述

    用kubeadm安装kubernetes并且部署微服务

    因为GFW问题导致遇到很多下载失败问题

    1.安装Docker

    2.安装k8s工具包

    3.kubeadm 初始化 
    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    Kuberbernetes基础概念

    Pod

    Pod是Kubernetes的最小操作单元,一个Pod可以由一个或多个容器组成;同一个Pod只能运行在同一主机上,共享相同的volumes,network,namespace

    ReplicationController(RC)

    RC用来管理Pod,一个RC可以由一个或多个Pod组成,在RC被创建后,系统会根据定义好的副本数来创建Pod数量. 
    在运行过程中,如果Pod数量小于定义的,就会重启停止的或重新分配Pod,反之则kill多余的.当然,也可以动态伸缩运行的Pods规模或熟悉.

    Service

    Service定义了一个Pod逻辑集合的抽象资源,Pod集合中的容器提供相同的共而过. 
    集合根据定义的Label和Selector完成,当创建一个Service后,会分配一个ClusterIP,这个IP与定义的端口提供这个集合一个统一的访问接口,并且实现负载均衡.

    Label

    Label是用于区分Pod,Service,RC的key/value键值对;Pod,Service,RC可以有多个label,但是每个label的key只能对应一个;主要是将Service的请求通过label转发给后端提供服务的Pod集合.

    kubectl

    客户端命令行工具,将接受的命令格式化后发送给kube-apiserver,作为整个系统的操作入口.

    kube-apiserver

    作为整个系统的控制入口,以REST API服务提供接口.

    kube-controller-manager

    用来执行整个系统中的后台任务,包括节点状态状况,Pod个数,Pods和Service的关联等.

    kube-scheduler

    负责节点资源管理,接受来自kube-apiserver创建Pods任务,并分配到某个节点.

    etcd

    负责节点间的服务发现和配置共享.

    kube-proxy

    运行在每个计算节点上,负责Pod网络代理.定时从etcd获取到service信息来做相应的策略.

    kubelet

    运行在每个计算节点上,作为agent,节后分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver.

    DNS

    一个可选的DNS服务,用于为每个Service对象创建DNS记录,这样所有的Pod就都可以通过DNS访问服务了.

    展开全文
  • Docker-docker swarm

    2021-06-20 00:54:03
    1.1 购买服务器 ...1、服务器硬件要求 硬件资源 最小配置 推荐配置 CPU 1 CPU 2CPU 内存 1GB 2~4GB 硬盘 20 GB 40GB 2、节点信息 主机名 IP地址 具体说明 docker01 8.134.122.252 swar

    1.1 购买服务器

    购买3台服务器,所有主机都安装dockerdocker-compose

    1.2 Swarm集群产生

    compose、machine 和 swarm 是docker 原生提供的三大编排工具。简称docker三剑客。

    1、服务器硬件要求

    硬件资源 最小配置 推荐配置
    CPU 1 CPU 2CPU
    内存 1GB 2~4GB
    硬盘 20 GB 40GB

    2、节点信息

    主机名 IP地址 具体说明
    docker01 8.134.122.252 swarm-manager节点
    docker02 8.134.114.8 swarm-work01节点
    docker03 8.134.123.77 swarm-work02节点

    3、当前服务器应用状态

    4、容器化部署存在问题

    • 怎么保证数据完整性,怎么去管很多微服容器,怎么去更新容器而不影响客户的业务?
    • 如果容器down掉了。怎么自动恢复?

    ===》解决以上问题,docker-swarm横空出世!!!。

    1.3 安装docker-swarm

    1、基本概述

    Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,可以将组成某个应该的多个docker容器编排在一起,同时管理。而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口(docker stack)统一管理这些Docker主机上的各种Docker资源。

    stack 是构成特定环境中的 service 集合, 它是自动部署多个相互关联的服务的简便方法,而无需单独定义每个服务。stack file 是一种 yaml 格式的文件,类似于 docker-compose.yml 文件,它定义了一个或多个服务,并定义了服务的环境变量、部署标签、容器数量以及相关的环境特定配置等。

    2、官方文档:https://docs.docker.com/engine/swarm/

    3、Docker Swarm由两部分组成

    • Docker集群:将一个或多个Docker节点组织起来,用户就能以集群的方式进行管理。
    • 应用编排:有一套API用来部署和管理容器。

    1.4 管理节点

    1、初始化第一个管理节点

    advertise-addr和listen-addr这两个参数注解:

    • 前者用来指定其他节点连接m0时的地址。
    • 后者指定承载swarm流量的IP和端口。
    • 创建管理节点,会在本地新建docker网络。

    2、manager节点说明

    MANAGER STATUS列

    • Leader 意味着该节点是使得群的所有群管理和编排决策的主要管理器节点。
    • Reachable 意味着节点是管理者节点正在参与Raft共识。如果管理节点不可用,则该节点有资格被选为新的管理节点。
    • Unavailable 意味着节点是不能与其他管理器通信的管理器。如果管理器节点不可用,应该将新的管理器节点加入群集,或者将工作器节点升级为管理器。

    AVAILABILITY列

    • Active 意味着调度程序可以将任务分配给节点。
    • Pause 意味着调度程序不会将新任务分配给节点,但现有任务仍在运行。
    • Drain 意味着调度程序不会向节点分配新任务,调度程序关闭所有现有任务并在可用节点上调度它们。

    docker01服务器

    注意:IP地址选择的是阿里云服务器的私服!!!

    [root@guardwhy01 ~]# docker network ls
    NETWORK ID     NAME      DRIVER    SCOPE
    44443742f9b7   bridge    bridge    local
    5f09756231c5   host      host      local
    9d85ae8a4d3d   none      null      local
    [root@guardwhy01 ~]# docker swarm init --advertise-addr 172.21.251.249:2377 --listen-addr 172.21.251.249:2377
    Swarm initialized: current node (ujswj6ys93qhtji45oxszv4zr) is now a manager.
    
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-2js986t4enexu18fpn5dnticbmx0df9qni5nsfsn6ngykl931s-1tattfxbp5ahqz7wk1ha7ycfh 172.21.251.249:2377
    
    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
    
    [root@guardwhy01 ~]# docker network ls
    NETWORK ID     NAME              DRIVER    SCOPE
    44443742f9b7   bridge            bridge    local
    c372c3473958   docker_gwbridge   bridge    local
    5f09756231c5   host              host      local
    jh4ohdal24uo   ingress           overlay   swarm
    9d85ae8a4d3d   none              null      local
    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Leader           20.10.7
    [root@guardwhy01 ~]# 
    

    3、加入新的节点

    Docker Swarm的新节点加入是从管理节点(docker01服务器)获取一长串命令,称为join token,任何加入集群只要执行join token即可加入Swarm集群。

    docker02服务器

    [root@guardwhy02 ~]# docker network ls
    NETWORK ID     NAME      DRIVER    SCOPE
    475d6f0e7633   bridge    bridge    local
    4212954a0f4f   host      host      local
    7fb6fab37bee   none      null      local
    [root@guardwhy02 ~]# docker swarm join --token SWMTKN-1-2js986t4enexu18fpn5dnticbmx0df9qni5nsfsn6ngykl931s-1tattfxbp5ahqz7wk1ha7ycfh 172.21.251.249:2377
    This node joined a swarm as a worker.
    [root@guardwhy02 ~]# 
    

    如果有新的work节点需要加入,在m0执行命令docker swarm join-token worker即可得到管理work节点的join token

    docker01服务器

    [root@guardwhy01 ~]# docker swarm join-token worker
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-2js986t4enexu18fpn5dnticbmx0df9qni5nsfsn6ngykl931s-1tattfxbp5ahqz7wk1ha7ycfh 172.21.251.249:2377
    
    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Leader           20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active                          20.10.7
    [root@guardwhy01 ~]# 
    

    如果有新的管理节点需要加入,在m0执行命令docker swarm join-token manager即可得到管理manager节点的join token

    docker01服务器

    [root@guardwhy01 ~]# docker swarm join-token manager
    To add a manager to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-2js986t4enexu18fpn5dnticbmx0df9qni5nsfsn6ngykl931s-aw4p1x4xwul0iw1ma2aid49cg 172.21.251.249:2377
    [root@guardwhy01 ~]#
    

    docker03服务器

    [root@guardwhy03 ~]# docker swarm join --token SWMTKN-1-2js986t4enexu18fpn5dnticbmx0df9qni5nsfsn6ngykl931s-aw4p1x4xwul0iw1ma2aid49cg 172.21.251.249:2377
    This node joined a swarm as a manager.
    [root@guardwhy03 ~]# 
    

    在manager查看所有节点。

    docker01服务器

    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Leader           20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active                          20.10.7
    25wan9kvxtew5m48hvkng8jr5     guardwhy03   Ready     Active         Reachable        20.10.7
    [root@guardwhy01 ~]# 
    

    1.5 节点相关操作

    1、验证节点

    master节点

    [root@guardwhy01 ~]# docker info
    


    work节点

    [root@guardwhy02 ~]# docker info
    


    2、节点权限提升/降低

    manager节点降低为worker节点,在manager节点执行如下命令

    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Reachable        20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active                          20.10.7
    25wan9kvxtew5m48hvkng8jr5     guardwhy03   Ready     Active         Leader           20.10.7
    [root@guardwhy01 ~]# docker node demote guardwhy03
    Manager guardwhy03 demoted in the swarm.
    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Leader           20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active                          20.10.7
    25wan9kvxtew5m48hvkng8jr5     guardwhy03   Unknown   Active                          20.10.7
    [root@guardwhy01 ~]# 
    

    将worker节点提升为manager节点,在manager节点执行如下命令

    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Leader           20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active                          20.10.7
    25wan9kvxtew5m48hvkng8jr5     guardwhy03   Ready     Active                          20.10.7
    [root@guardwhy01 ~]# docker node promote guardwhy02 
    Node guardwhy02 promoted to a manager in the swarm.
    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Leader           20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active         Reachable        20.10.7
    25wan9kvxtew5m48hvkng8jr5     guardwhy03   Ready     Active                          20.10.7
    [root@guardwhy01 ~]# 
    

    3、节点脱离集群

    docker03服务器

    docker03服务器中,使用以下命令

    [root@guardwhy03 ~]# docker swarm leave
    Node left the swarm.
    [root@guardwhy03 ~]# 
    

    docker01服务器

    docker01服务器中,使用以下命令

    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Reachable        20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active         Leader           20.10.7
    25wan9kvxtew5m48hvkng8jr5     guardwhy03   Down      Active                          20.10.7
    [root@guardwhy01 ~]# 
    

    4、删除脱离集群的节点

    删除节点命令: docker node rm 节点名称|节点ID

    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Reachable        20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active         Leader           20.10.7
    25wan9kvxtew5m48hvkng8jr5     guardwhy03   Down      Active                          20.10.7
    [root@guardwhy01 ~]# docker node rm guardwhy03
    guardwhy03
    [root@guardwhy01 ~]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Reachable        20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active         Leader           20.10.7
    [root@guardwhy01 ~]# 
    

    manager中重新添加worker节点

    [root@guardwhy01 ~]# docker swarm join-token worker
    To add a worker to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-2js986t4enexu18fpn5dnticbmx0df9qni5nsfsn6ngykl931s-1tattfxbp5ahqz7wk1ha7ycfh 172.21.251.249:2377
    
    [root@guardwhy01 ~]#
    
    [root@guardwhy03 ~]# docker swarm join --token SWMTKN-1-2js986t4enexu18fpn5dnticbmx0df9qni5nsfsn6ngykl931s-1tattfxbp5ahqz7wk1ha7ycfh 172.21.251.249:2377
    This node joined a swarm as a worker.
    [root@guardwhy03 ~]# 
    

    添加成功!!!

    5、安装图形界面

    docker官方地址: https://hub.docker.com/r/dockersamples/visualizer

    拉取基础镜像

    注意:要在manager服务器创建容器!!!

    docker pull dockersamples/visualizer:latest
    

    运行图形界面镜像

    docker run -itd --name visualizer -p 8091:8080 \
    -e HOST=8.134.122.252 \
    -e PORT=8080 \
    -v /var/run/docker.sock:/var/run/docker.sock dockersamples/visualizer:latest
    

    查看运行结果

    打开浏览器,点击链接: http://8.134.122.252:8091/

    6、Swarm命令小结

    常用命令 具体作用
    docker swarm init 初始化一个 swarm 群集
    docker swarm join 加入群集作为节点或管理器
    docker swarm join-token 管理用于加入群集的令牌
    docker swarm leave 离开 swarm 群集
    docker swarm unlock 解锁 swarm 群集
    docker swarm unlock-key 管理解锁钥匙
    docker swarm update 更新 swarm 群集

    7、node命令小结

    常用命令 具体作用
    docker node demote 从 swarm 群集管理器中降级一个或多个节点
    docker node inspect 显示一个或多个节点的详细信息
    docker node ls 列出 swarm 群集中的节点
    docker node promote 将一个或多个节点推入到群集管理器中
    docker node ps 列出在一个或多个节点上运行的任务,默认为当前节点。
    docker node rm 从 swarm 群集删除一个或多个节点
    docker node update 更新一个节点

    1.6 Docker service

    1、docker service命令小结

    常用命令 具体作用
    docker service create 创建服务
    docker service inspect 显示一个或多个服务的详细信息
    docker service logs 获取服务的日志
    docker service ls 列出服务
    docker service rm 删除一个或多个服务
    docker service scale 设置服务的实例数量
    docker service update 更新服务
    docker service rollback 恢复服务至update之前的配置

    2、需求实现


    2、集群所有的节点都下载nginx基础镜像

    docker pull nginx:1.18.0-alpine
    docker pull nginx:1.19.3-alpine
    

    3、在docker01服务器(manager节点)中创建overlay网络。

    [root@guardwhy01 data]# docker network ls
    NETWORK ID     NAME              DRIVER    SCOPE
    0eb90cd90de7   bridge            bridge    local
    c372c3473958   docker_gwbridge   bridge    local
    5f09756231c5   host              host      local
    jh4ohdal24uo   ingress           overlay   swarm
    9d85ae8a4d3d   none              null      local
    [root@guardwhy01 data]# docker network create -d overlay nginx-net
    yoyo8isxn654fmkeygfsi3nlw
    [root@guardwhy01 data]# 
    

    4、创建5个nginx容器的集群

    [root@guardwhy01 data]# docker service create --name nginx --network nginx-net -p 80:80 --replicas 5 nginx:1.18.0-alpine 
    u0etuzildau4h931nybmjbgtx
    overall progress: 5 out of 5 tasks 
    1/5: running   [==================================================>] 
    2/5: running   [==================================================>] 
    3/5: running   [==================================================>] 
    4/5: running   [==================================================>] 
    5/5: running   [==================================================>] 
    verify: Service converged 
    [root@guardwhy01 data]# docker node ls
    ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    ujswj6ys93qhtji45oxszv4zr *   guardwhy01   Ready     Active         Leader           20.10.7
    sq9x6zrg7u2izo4tzmrffbyz1     guardwhy02   Ready     Active                          20.10.7
    pu1ykn1mnx0ptbiw7bjwltrq6     guardwhy03   Ready     Active                          20.10.7
    [root@guardwhy01 data]# docker ps -a
    CONTAINER ID   IMAGE                             COMMAND                  CREATED         STATUS                            PORTS                                       NAMES
    f42ef1d0c1e5   nginx:1.18.0-alpine               "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes                      80/tcp                                      nginx.4.qc3yxnwk3zpeurfg3cj6kfy3t
    d4c2fa9dbab0   nginx:1.18.0-alpine               "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes                      80/tcp                                      nginx.2.d89kask69omz214ivu14fduo4
    3d648fc53506   dockersamples/visualizer:latest   "/sbin/tini -- node …"   6 hours ago     Up 4 seconds (health: starting)   0.0.0.0:8091->8080/tcp, :::8091->8080/tcp   visualizer
    [root@guardwhy01 data]# 
    

    访问链接: http://8.134.122.252:8091/

    5、命令查看服务情况。

    [root@guardwhy01 data]# docker service ls
    ID             NAME      MODE         REPLICAS   IMAGE                 PORTS
    u0etuzildau4   nginx     replicated   5/5        nginx:1.18.0-alpine   *:80->80/tcp
    [root@guardwhy01 data]#
    

    注意: docker service ls命令只能在manager节点使用,在worker节点无法查看

    6、查看服务器容器情况

    [root@guardwhy02 home]# docker ps
    CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS     NAMES
    a77fba3447f0   nginx:1.18.0-alpine   "/docker-entrypoint.…"   14 minutes ago   Up 14 minutes   80/tcp    nginx.3.haruvjy8v68otk1cxdkc4rs90
    e13fb38a0602   nginx:1.18.0-alpine   "/docker-entrypoint.…"   14 minutes ago   Up 14 minutes   80/tcp    nginx.1.hwedkhibak90mzvh7jt9oaaau
    [root@guardwhy02 home]# 
    

    注意: 在manager或者worker节点都可以执行docker ps命令。

    7、manager节点只用于管理集群,不部署服务。

    [root@guardwhy01 data]# docker node update --availability drain guardwhy01
    guardwhy01
    [root@guardwhy01 data]# docker ps
    CONTAINER ID   IMAGE                             COMMAND                  CREATED       STATUS                    PORTS                                       NAMES
    3d648fc53506   dockersamples/visualizer:latest   "/sbin/tini -- node …"   6 hours ago   Up 14 minutes (healthy)   0.0.0.0:8091->8080/tcp, :::8091->8080/tcp   visualizer
    [root@guardwhy01 data]# 
    

    访问链接: http://8.134.122.252:8091/

    8、将服务缩减为3个容器

    [root@guardwhy01 data]# docker service scale nginx=3
    nginx scaled to 3
    overall progress: 3 out of 3 tasks 
    1/3: running   [==================================================>] 
    2/3: running   [==================================================>] 
    3/3:   
    verify: Service converged 
    [root@guardwhy01 data]# 
    

    访问链接: http://8.134.122.252:8091/

    9、升级nginx版本

    进入其中一个容器查看nginx的版本信息。

    [root@guardwhy02 home]# docker images
    REPOSITORY   TAG             IMAGE ID       CREATED        SIZE
    nginx        1.18.0-alpine   684dbf9f01f3   2 months ago   21.9MB
    nginx        1.19.3-alpine   4efb29ff172a   8 months ago   21.8MB
    [root@guardwhy02 home]# docker ps -a
    CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS     NAMES
    a77fba3447f0   nginx:1.18.0-alpine   "/docker-entrypoint.…"   29 minutes ago   Up 29 minutes   80/tcp  nginx.3.haruvjy8v68otk1cxdkc4rs90
    e13fb38a0602   nginx:1.18.0-alpine   "/docker-entrypoint.…"   29 minutes ago   Up 29 minutes   80/tcp    nginx.1.hwedkhibak90mzvh7jt9oaaau
    [root@guardwhy02 home]# docker exec -it e13fb38a0602 sh
    / # nginx -v
    nginx version: nginx/1.18.0
    nginx version: nginx/1.18.0
    / # exit
    [root@guardwhy02 home]# 
    

    更新镜像

    注意:更新镜像只能在manager节点使用。

    [root@guardwhy01 data]# docker service update --image nginx:1.19.3-alpine nginx
    nginx
    overall progress: 3 out of 3 tasks 
    1/3: running   [==================================================>] 
    2/3: running   [==================================================>] 
    3/3: running   [==================================================>] 
    verify: Service converged 
    [root@guardwhy01 data]# 
    

    更新镜像以后,查看结果!!!

    添加或者更新一个对外端口

    [root@guardwhy01 data]# docker service update --publish-add 8087:80 nginx
    nginx
    overall progress: 5 out of 5 tasks 
    1/5: running   [==================================================>] 
    2/5: running   [==================================================>] 
    3/5: running   [==================================================>] 
    4/5: running   [==================================================>] 
    5/5: running   [==================================================>] 
    verify: Service converged 
    [root@guardwhy01 data]# 
    

    访问链接: http://8.134.122.252:8087/

    10、删除服务

    [root@guardwhy01 data]# docker network ls
    NETWORK ID     NAME              DRIVER    SCOPE
    0eb90cd90de7   bridge            bridge    local
    c372c3473958   docker_gwbridge   bridge    local
    5f09756231c5   host              host      local
    jh4ohdal24uo   ingress           overlay   swarm
    yoyo8isxn654   nginx-net         overlay   swarm
    9d85ae8a4d3d   none              null      local
    [root@guardwhy01 data]# docker service rm nginx
    nginx
    [root@guardwhy01 data]# docker network rm nginx-net
    nginx-net
    [root@guardwhy01 data]# docker service ls
    ID        NAME      MODE      REPLICAS   IMAGE     PORTS
    [root@guardwhy01 data]# 
    

    1.7 Docker stack

    1、docker stack命令小结

    常用命令 具体作用
    docker stack deploy 部署新的堆栈或更新现有堆栈
    docker stack ls 列出现有堆栈
    docker stack ps 列出堆栈中的任务
    docker stack rm 删除一个或多个堆栈
    docker stack services 列出堆栈中的服务

    2、在manager节点中创建docker-compose.yml文件

    version: '3'
    services:
      nginx-web:
        image: nginx:1.19.3-alpine
        container_name: nginx
        networks:
         - nginx-net
        restart: always
        ports:
          - 80:80
        deploy:
          replicas: 5
    
    networks:
      nginx-net:
        driver: overlay
    

    3、运行nginx

    [root@guardwhy01 data]# docker stack deploy nginx-stack -c docker-compose.yml
    Ignoring unsupported options: restart
    
    Ignoring deprecated options:
    
    container_name: Setting the container name is not supported.
    
    Creating service nginx-stack_nginx-web
    [root@guardwhy01 data]# docker service ls
    ID             NAME                    MODE         REPLICAS   IMAGE                 PORTS
    i8nabdgwztf0   nginx-stack_nginx-web   replicated   5/5        nginx:1.19.3-alpine   *:80->80/tcp
    [root@guardwhy01 data]# 
    

    访问链接: http://8.134.122.252:8091/

    4、查看NAME中的服务名为:nginx-stack_nginx-web所有容器

    [root@guardwhy01 data]# docker service ps nginx-stack_nginx-web
    ID             NAME                      IMAGE                 NODE         DESIRED STATE   CURRENT STATE            ERROR     PORTS
    j91t0720gitm   nginx-stack_nginx-web.1   nginx:1.19.3-alpine   guardwhy02   Running         Running 11 minutes ago             
    5qooi8nxt1xb   nginx-stack_nginx-web.2   nginx:1.19.3-alpine   guardwhy02   Running         Running 11 minutes ago             
    r8cdsibuwsec   nginx-stack_nginx-web.3   nginx:1.19.3-alpine   guardwhy03   Running         Running 11 minutes ago             
    ze7d0p8m8wx6   nginx-stack_nginx-web.4   nginx:1.19.3-alpine   guardwhy02   Running         Running 11 minutes ago             
    itzy9fa87v50   nginx-stack_nginx-web.5   nginx:1.19.3-alpine   guardwhy03   Running         Running 11 minutes ago             
    [root@guardwhy01 data]# 
    

    5、删除stack服务,执行以下命令

    [root@guardwhy01 data]# docker stack rm nginx-stack
    Removing service nginx-stack_nginx-web
    Removing network nginx-stack_nginx-net
    [root@guardwhy01 data]# 
    


    6、小结

    • networks中也可以不指定driver:overlay,因为docker swarm默认网络类型是overlay。
    • 整个networks都可以不用配置,stack部署时会默认创建网络。定义网络在docker stack deploy时,会先默认创建一个网络。
    • 注意一定要把镜像先拉取到本地然后再执行。

    1.8 Stack和Compose区别

    • Docker stack会忽略了构建指令,无法使用stack命令构建新镜像,它是需要镜像是预先已经构建好的。 所以docker-compose更适合于开发场景。
    • Docker Compose是一个Python项目,它使用Docker API规范来操作容器。所以需要安装Docker -compose,以便与Docker一起在计算机上使用。
    • Docker Stack功能包含在Docker引擎中,不需要安装额外的包来使用它。docker stacks 只是swarm mode的一部分。
    • Docker stack不支持基于第2版写的docker-compose.yml,也就是version版本至少为3。然而Docker Compose对版本为2和3的 文件仍然可以处理。
    • docker stack把docker compose的所有工作都做完了,因此docker stack将占主导地位。对于大多数用户来说,切换到使用docker stack既不困难,也不需要太多的开销。如果是Docker新手,或正在选择用于新项目的技术,请使用docker stack
    展开全文
  • 1. docker for window和docker for mac需要一定的硬件配置和操作系统版本要求。 主要使用了hyper-v技术实现了虚拟化,属于window和mac的本地应用。和操作系统的契合度最高。 2.docker toolbox是跨平...

    参考docker官网:https://docs.docker.com/docker-for-mac/docker-toolbox/

    1. docker for window和docker for mac需要一定的硬件配置和操作系统版本要求。

        主要使用了hyper-v技术实现了虚拟化,属于window和mac的本地应用。和操作系统的契合度最高。

    2. docker toolbox是跨平台的包含所有docker工具的安装包,包括docker-machine,docker,docker compose.

        它依赖于使用virtual box,开启一个boot2docker的虚拟机(即docker machine),然后在该虚拟机上进行docker的一些列操作。

    总结,若是电脑的配置符合要求,安装docker for window和docker for mac是最合适的。

    否则的话,也完全可以安装docker tool box来使用docker。

     

    资源下载和教程总结

    1. docker官网下载安装软件很慢,可从daocloud网站下载安装包。

    http://get.daocloud.io/#install-docker-for-mac-windows

    http://get.daocloud.io/#install-docker

    2. docker官网

    https://docs.docker.com/get-started/

    3. docker汉语教程

    https://www.gitbook.com/book/yeasy/docker_practice

    转载于:https://www.cnblogs.com/junna/p/7146583.html

    展开全文
  • Webpack硬件应用程序,由Docker Compose包装 开发依赖 要求 Docker Compose 安装 docker-compose run node yarn install 用法 在终端中运行docker-compose up 在浏览器中打开 您必须看到Hello webpack! 文本 根据...
  • Docker harbor安装

    2019-05-30 15:37:00
    目录 环境要求 安装 harbor管理 测试上传和下载 参数 ...harbor可以部署在任何支持Docker的Linux发行版上,系统需要安装dockerdocker compose docker compose 安装 硬件要求 ...
  • Docker 运行在CentOS 7上,要求系统为64位、系统内核版本为3.10以上。 Docker运行在CentOS-6.5或更高的版本的CentOS上,要求系统64位,**系统内核版本为2.6.32-431或更高版本。** 查看自己的内核 uname命令用于...
  • Docker 安装

    2021-06-21 12:10:06
    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。 查看自己的内核: uname -r 命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型 等)。 [root@izbp1ewxwj89u62...
  • docker 安装nginx

    2019-12-11 10:41:40
    docker 安装,硬件要求,linux内核必须是3.10+,uname -r 命令查看内核版本 * docker pull nginx 拉取最新的nginx版本, 如果有版本需要, nginx:版本.例:nginx:1.17 docker ps 查看运行中的实例 docker ps -a 查看...
  • Docker使用

    2019-02-14 15:44:01
    1.简化配置,同一Docker的配置可以在不同 环境中使用,降低了硬件要求和应用环境之间的耦合度.  2.代码的流水线管理.代码从开发者的假期到最终在生产环境上的部署,需要经过很多的中间环境.而每一个中间环境都有自己...
  • VMWARE和docker

    2020-09-09 20:13:41
    在win10下安装了VMware和docker,发现这两个软件对硬件的设置要求冲突。 vmware要求关闭Hyper-V属性,docker要求开启Hyper-V属性。有没有解决办法……
  • 如果您具有兼容CUDA的NVIDIA图形卡,则可以使用启用CUDA的PyTorch映像版本来启用硬件加速。 我仅在Ubuntu Linux中对此进行了测试。 首先,请确保您安装了适当的NVIDIA驱动程序。 在Ubuntu上,我发现确保安装正确...
  • 官网三种安装方式,故不再赘述 大部分内容可参考官网链接:...硬件 树莓派3B Respbian OS要求 要安装Docker CE,您需要这些Debian或Raspbian版本之一的64位版本: Buster 10 ...
  • 它旨在实现低硬件要求和平台独立性,可在所有类型的系统(台式电脑、上网本、NAS、路由器)上运行。 尽管有严格的限制,但它包含了很多功能,如网络界面、验证码识别、解压缩等。 pyLoad 分为核心和客户端,以...
  • 部署流程1.环境准备2.安装docker2.安装docker-compose2.安装Harbor 1.环境准备 Harbo官网 ... 前置条件准备 ...硬件配置 最低要求 推荐配置 CPU 2 CPU 4 CPU 内存 4 GB 8 GB 硬盘 40 GB 160 GB
  • docker入门级命令总结

    2019-12-12 17:59:13
    1 安装docker硬件要求 机器要求:系统可以为Ubantu或是Centos7 或是Red Hat 7 部署大型的微服务项目,内存要求:16G 2 安装docker 2.1 更新当前的yum环境 yum update 2.2 yum方式安装docker yum install docker ...
  • 该存储库包含用于使用 (完整版)使用针对NVIDIA平台(具有NVIDIA硬件加速,OpenGL支持和共享X11套接字)的针对Ubuntu Xenial的不同仿真工具构建Docker映像的Dockerfile。 这些图像用于测试ROS Kinetic,其具有以下...
  • ARM架构下部署docker

    2021-03-23 17:20:15
    ARM架构下部署docker 1 环境要求 2 安装与配置docker 2.1 下载Docker静态包 2.2 移值docker静态包以及组件 2.3 配置docker.service文件 2.4 安装后操作 2.4 验证docker安装 2.5 卸载docker 3 故障...
  • docker -入门

    2019-10-11 15:05:10
    docker安装以及入门使用安装系统要求基本命令初级操作 安装 系统要求 系统要求 您的Mac必须满足以下要求才能成功安装Docker Desktop: Mac硬件必须是2010年或更高版本,并且Intel的硬件支持内存管理单元(MMU)虚拟...
  • Docker 入门

    2021-04-21 15:30:24
    什么是容器化技术 应用部署演化主要分为三个阶段: ...资源浪费:应用对硬件要求不一,可能造成磁盘浪费,或者是cpu的浪费 难于扩展和迁移:比如增加内存、主机迁移、操作系统更换等 虚拟化时代 相比...
  • Docker 简介

    2016-09-24 13:10:58
    VM(比如VirtualBox、VMware)的理念是在宿主的系统之上,自己虚拟了一个硬件平台,然后运行一个不同的 OS。这意味着它要求很多的资源,在一台机器上,你最多就跑几个虚拟机吧。 而 docker 是依托于宿主机提供的...
  • Docker 安装 goharbor

    2019-12-04 10:35:30
    Hardware 硬件要求 硬件 最低配置 推荐配置 处理器 2 CPU 4 CPU 内存 4GB 8GB 硬盘 40GB 160GB Software 软件要求 软件 版本 说明 Docker 17.03.0-ce 或更高 Docke...
  • 可用于在家中自行读取智能电表DSMR(荷兰智能电表要求)P1端口。 您将需要可以运行Linux软件的电缆和硬件。 免费用于非商业用途。 Docker实现。 快速开始 文档:/ 安装方式:/ 常见问题解答:/ 以获取导览和屏幕...
  • 安装Docker桌面版

    2020-04-15 20:41:00
    安装Docker Desktop 目前的Docker桌面版(Docker Desktop)是方便桌面系统使用...需要注意的是,Docker的桌面版一直在升级,对Mac的系统和硬件有所要求Docker Desktop - macOS must be version 10.13 or newe...
  • docker简介、虚拟机与Docker有何不同

    千次阅读 2017-10-10 22:16:44
    为什么越来越多人使用docker那么,为什么大家都追捧容器和Docker呢?Hyper-V、KVM和Xen等虚拟机管理程序都“基于虚拟化硬件仿真机制。这意味着,它们对系统要求很高。” 然而,容器却使用共享的操作系统。这意味着...
  • MacOS安装Docker

    千次阅读 2017-09-29 16:48:40
    系统要求,只有在满足所有这些需求的情况下,Mac的Docker才会启动 Mac必须是2010年或更新的型号,英特尔的硬件支持内存管理单元(MMU)虚拟化。即扩展页表(概念)和不受限制的模式。 OS X El Capitan 10.11和更新的...
  • Win10 中如何安装 Docker

    2019-07-14 22:05:46
    这里,我们强烈推荐采用 Docker Desktop for Windows 来安装 Docker。 Windows 系统的要求: 64位 Windows 10 Pro、Enterprise 或者 Education 版本。 支持并且开启了硬件虚拟化技术(Hardware Virtualization ...
  • 1、安装要求 1.1、硬件 资源 最低配置 推荐配置 CPU 2 CPU 4 CPU 内存 4G 8G 硬盘 40GB 160GB 1.2、软件 软件 版本 Docker engine 版本17.06.0-ce+或更 Docker Compose 版本1.18.0或更高 ...
  • 浅谈docker

    2020-09-10 20:24:59
    一,docker为什么那么火 这要从虚拟机说起,我们都知道很多虚拟机管理工具程序都基于虚拟化硬件仿真机制。这意味着,它们对系统要求很高。但是容器却使用共享的操作系统。这意味着它们在使用系统资源方面比虚拟机...
  • 试用开源软件的优劣势 由于现在容器化的热度,大部分软件都有docker official镜像,那么使用docker...不过性能测试本身对硬件环境和软件环境都有一定要求,即使自己部署依旧需要较多配置和准备。 2、少量软件的...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 232
精华内容 92
关键字:

docker硬件要求