为什么要让docker桥接物理网络? docker默认提供了一个隔离的内网环境,启动时会建立一个docker0的虚拟网卡,每个容器都是连接到docker0网卡上的.而docker0的ip段为172.17.0.1,若想让容器与宿主机同一网段的其他机器访问,就必须在启动docker的时候将某个端口映射到宿主机的端口上才行,例如:docker run -itd -p 22 centos.这是我们所不能接受的,想想每个应用都要绞尽脑汁的去设置端口,因为不能重复,如果应用有多端口那更是不堪设想啊.所以为了…
cd /etc/sysconfig/network-scripts/; cp ifcfg-eth0  ifcfg-br0 vi ifcfg-eth0 //增加BRIDGE=br0,删除IPADDR,NETMASK,GATEWAY,DNS1 vi ifcfg-br0//修改DEVICE为br0,Type为Bridge,把eth0的网络设置设置到这里来 service network restart   安装pipwork:    git clone https://github.com/jpeta…
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 docker(五) 使用Docker Registry搭建镜像私服 docker(六) 使用docker-maven-plugin插件构建docker镜像(已过时) docker(七) 使用dockerfile-maven-plugin插件构建docker镜像 官方安装教程: Ubuntu下安装d…
最近发现某台机器上的Docker服务无法开启,报如下错误: [root@localhost ~]# docker ps -a Cannot connect to the Docker daemon. Is 'docker -d' running on this host? [root@localhost ~]# service docker restart Redirecting to /bin/systemctl restart docker.service Job for docker.se…
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方已经将Docker更名为docker-engine. 如果你已经安装了这个版本的Docker需要使用下边的命令删除它 $ sudo yum -y remove docker docker-common container-selinux /var/lib/docker 无需删除. 安装Docker…
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install gcc-c++ 具体案例如下: 第三步:安装docker 使用官方安装脚本自动安装(强烈推荐)安装命令如下: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 当然也还有很多种安装方式,比如手动安装..... 第四…
单个host上的容器的网络:通过本章的学习,我们知道docker默认有三种网络,可以通过docker network ls查看: none:封闭的网络,通过--network=none来指定: host:将host主机上面的网络完全映射到容器中: bridge:桥接网络,默认情况下容器使用的是bridge,并将容器网络桥接到docker0上:可以通过brctl show查看桥接情况 我们可以创建user-defined网络,user-defined也分为三种:bridge,overlay,mac…
Calico是一个纯三层的虚拟网络方案,Calico为每个容器分配一个IP,每个host都是router,把不同host的容器连接起来.与vxlan不同的是:calico不对数据包进行封装,不需要NAT和端口映射,扩展性和性能都很好 与其他容器网络相比,calico还有一个优势:network policy.用户可以动态定义ACL规则,控制进出容器的数据包,实现业务需求 calico依赖etcd在不同主机间共享和交换信息,存储calico网络状态.calico网络中每个主机都要运行calico组…
flannel是由CoreOS研究的一种覆盖网络(overlay network)网络工具,目的是帮助每一个host主机有一个完整的子网: 功能是:让集群中不同节点的主机创建的容器都有一个唯一的虚拟IP 工作原理:将TCP数据包装在另一种网络包里进行路由转发和通信,目前已经支持UDP,Vxlan,AWS,APC和GRE等路由转发的模式.默认节点间通过UDP进行转发 1.安装配置etcd etcd功能:与consul的功能差不多,维护主机间的路由表,flannel的配置信息全部存放在etcd里面,…
之前学习了单个host上的网络,我们知道单个host上的网络有:none,host,bridge和joined,他们解决了单个host上面的容器通信的问题:接下来我们讨论跨主机间容器通信的方案 跨主机的网络方案包括: 1.docker原生的overlay和macvlan 2.第三方方案:常用的包括flannel,weave,calico docker 网络是一种非常活跃的技术领域,不断有新方案开发出来: 这么多的方案是通过:libnetwork以及CNM与docker集成在一起的 libnetw…
1.确认系统没安装任何docker相关的安装包 yum remove docker docker-common docker-selinux docker-engine centos7的docker存放在: /var/lib/docker/下2.安装docker软件包库(源)安装需要的软件包: yum install -y yum-utils device-mapper-persistent-data lvm2 建立docker源 yum-config-manager --add-repo ht…
笔者近期在服务器上搭建docker环境,可由于笔者是普通用户,在安装的时候就跳了很多坑,现在记录一下. 一.docker权限问题 据官方解释,搭建docker环境必须使用root权限,或者sudo装,但一般服务器是一个机构或者多个人共同使用的,只有管理员才能拿到root权限,所以建议需要使用docker的普通用户要向管理员申请,在他搭完服务器后再搭一个docker环境,并把你当前这个普通用户名加入到docker组内,这样你才能使用. 命令行 sudo usermod -aG docker <yo…
环境背景: Docker化已经成为一种热门,记录一下使用docker引擎安装gitlab的过程. 测试环境: 系统 软件 依赖 CentOS 7.4 GitLab(latest) docker-ce 18 安装过程: 1. 安装docker引擎并启动 [root@server- ~]# yum install docker-ce -y //需要去官方下载docker.repo文件 [root@server- ~]# systemctl enable docker [root@server- ~]…
如何访问service呢? 为了便于分析,我们重新部署web-server 1.删除service 执行命令docker service rm web-server docker service rm删除web-server,service所有的副本会被同时删除 2.重新创建service,这次直接使用--replicas=2指定副本的数量 3.现在每个worker-node上分别运行了一个副本 那么现在如何访问service呢? 可以想成现在有两个docker host,分别运行了一个http…
  从主机的层面来看,docker swarm管理的是docker host集群. 什么是集群? 服务器集群由一组网络上相互连接的服务器组成,他们一起协同工作. 一个集群和一堆服务器的显著区别是: 集群能够像单个系统那样工作,同时提供高可用,负载均衡和并行处理. 这样,部署应用的时候,我们只考虑需要多少的内存和CPU,而不是考虑会使用哪台服务器的内存和CPU.我们不应该关心应用部署在哪里,我们应该关心运行这些应用需要哪些资源,然后将它部署到集群,集群管理程序(比如:docker swarm)会搞…
CentOS7下Docker的安装 一.操作系统要求 CentOS 7 64位 Kernel 3.10+ 本机系统信息 二.卸载旧版本 如果之前安排过旧版本的Docker,先卸载掉旧版Docker以及相关依赖项.没安装过旧版本,跳过此步 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-lo…
docker的17.X版本与以前的docker安装有些不同,参考了下这篇文章http://www.itmuch.com/docker/docker-2/,以下是我的docker 17.X版本安装过程,记下来,方便以后查阅 1.卸载老的版本docker: yum remove docker docker-common container-selinux docker-selinux docker-engine 执行该命令只会卸载Docker本身,而不会删除Docker内容,例如镜像.容器.卷以及网…
一 环境准备1.虚拟机or物理机 2.centos7系统(稳定,对docker支持友好) 二 安装过程step1:使用yum命令进行安装 yum install -y docker备注:-y 表示不询问 使用默认配置进行安装,等待提示  完毕! step2:查看是否安装成功 yum list installed | grep docker备注:命令为 查看yum安装完成文件列表 并 筛选docker安装信息 如下 step3:启动docker服务 systemctl start dockerst…
前言 建立本机(win7)和VirtualBox中docker虚拟机的共享文件夹,注:下面的命令都是以root身份运行的,使用sudo -i切换到root身份,如无法切换,请自行在命令前加上sudo命令,下面介绍两种方法: 因为docker自带的工具对输入命令不够友好,这里推荐使用xshell连接虚拟机进行配置: 在cmd中使用:docker-machine ls查看ip地址 端口:22 账号:docker 密码:tcuser 方法一 1.在VirtualBox中创建共享文件夹,步骤:选中运行d…
参考docker安装的方式: http://www.runoob.com/docker/centos-docker-install.html Docker中文官网安装步骤:https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/ Docker分为CE和EE两大版本,CE即社区版(免费,支持周期7个月),EE即企业版(付费,支持周期24个月) Docker安装命令 Docker安装命令 如下: $ sudo yum…
搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Package: docker-engine-1.12.3-1.el7.centos.x86_64 (dockerrepo) Requires: systemd-units Error: Package: docker-engine-1.12.3-1.el7.centos.x86_64 (dockerrep…
本文内容摘自官网:https://docs.docker.com/engine/installation/linux/centos/#/create-a-docker-group 注:本文是介绍Linux 上的分布式版本CentOs上安装. 一.安装前的准备工作 Docker 需要安装在64位系统的CentOS上,而且linux内核至少在3.10版本以上,这个版本的内核在CenOS7上运行. 所以只要安装一个CenOS7  64位的系统就可以了.作为学习,大家只需安装个虚拟机就OK. 可以通过u…
运行service 执行以下命令: docker service create --name web-server httpd 通过docker service ls查看swarm中的service REPLICAS显示当前副本信息,1/1的意思是web-server这个service期望的容器的副本量是1,目前启动的副本量是1,也就是说web-server这个service已经部署完成了 通过docker service ps 可以查看每个service的副本的状态 可以看到web-servi…
What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成container 2.虚拟机:AWS,Azure,VMware,华为,公有云,私有云等 对容器有了解的人都会觉得容器和虚拟机很像,因为二者都是为应用提供封装和隔离. 1.系统层面:容器本质上是单个应用程序,而虚拟机则需要更多的资源来运行整个操作系统,虚拟机上可以运行容器,其实我们也可以把容器看作成一个…
最近我们学习了docker 存储,首先docker存储有两种:storage driver和data volume. storage driver是由镜像层和容器层组成的,可以通过docker inspect <容器ID>来查看容器默认使用的driver data volume又分为两种bind mount 和docker managed volume bind mount:通过容器运行时指定固定的bind mount,例如:docker run -d -v /test:/var/lib/te…
想要倒腾Kubernetes的话,第一步就是要会安装Docker,这篇文章讲一讲过程 安装步骤 检查内核版本,必须是3.10以上 uname -r 安装Docker yum -y install docker 启动 Docker 后台服务 service docker start 到此,Docker安装教程结束.可以使用命令查看安装的Docker版本: docker --version 另外一种方法 上面的方法需要***,如果因为条件限制,可以尝试另外一种方法安装Docker:[Docker]C…
我们现在知道docker 有两种存储方式:storage driver和data volume stroage driver这种存储方式主要是存储那些无状态的数据,是镜像层和容器层组成的,而data volume是目录或者文件,那么这些目录或者文件要设置多大呢? 因为volume实际上是docker host文件系统的一部分,所以volume的容量取决于文件系统当前未使用的空间,目前还没有方法设置volume的容量 在具体的使用上,docker提供了两种类型的volume:bind mount和…
这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资源进行限制的操作,包括:CPU(- c),内存(-m   --memory-swap),blkio IO(--device-weight),知道了容器的cpu和blkio io的限制是根据权重来限制的,这种权重体现在资源紧缺的情况下,而内存的限制是由物理内存和swap内存来限制的,如果不设置--me…
cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup可以设置进程使用CPU,内存和IO资源使用的限额.我们之前学习的通过-m,--memory-swap,-c,--blkio-weight就是通过cgroup实现的.那么cgroup到底是什么样子的呢? 可以在/sys/fs/cgroup里面找到,例如: 我们运行一个容器,我们设置的cpu的权重是70…
yu我们之前已经学习了如何运行容器docker run,也学习了如何进入容器docker attach和docker exec,下面我们来学习容器的其他操作: stop/start/restart 1.通过docker stop可以停止运行的容器 容器在docker host上面实际是一个进程,docker stop命令其实是向这个进程发送了一个SIGTERM信号.如果想快速停止容器,可以使用docker kill命令,作用是向容器进程发送SIGKILL信号(通过自己做试验,docker sto…