精华内容
下载资源
问答
  • 什么是宿主机

    万次阅读 多人点赞 2018-11-10 22:04:12
    就是主机,这个概念相对于子机而言的,比如你安装有虚拟机的话,那么相对于虚拟机而言,你正在使用的计算机就是宿主机,虚拟机安装在主机上的,必须在主机上才能运行,主机就是一个“宿主”。...

    就是主机,这个概念是相对于子机而言的,比如你安装有虚拟机的话,那么相对于虚拟机而言,你正在使用的计算机就是宿主机,虚拟机是安装在主机上的,必须在主机上才能运行,主机就是一个“宿主”。

    展开全文
  • 一、Docker 是什么?Docker 一定程度上可以将其想象一个更轻量的电脑,有自己私有化的操作系统,网络,独立的内存。并且其提供了足够强的封装能力。同集装箱类比,我们在一个空间内封装好了一切。宿主机就是拉箱子的...

    一、Docker 是什么?

    Docker 一定程度上可以将其想象一个更轻量的电脑,有自己私有化的操作系统,网络,独立的内存。并且其提供了足够强的封装能力。同集装箱类比,我们在一个空间内封装好了一切。宿主机就是拉箱子的船,一个封装好的集装箱就是一个独立的存在,可以做到地下的船随意换,而箱子内容不变。正式Docker 有了这种能力,在我们安装服务的时候避免对宿主机繁琐的配置,就可以将一个软件运行起来。以前我们开发一个java程序,宿主机必须提供jre 环境。如果没有这个环境,不好意思该程序无法执行,有了容器后这些就简单了。拉取一个镜像,然后运行起来,结束。

    二、Docker Engine

    在 Docekr 中有一个核心就是 Docker Engine,这个是什么呢?就简单的将其理解为一个C/S服务吧,更通俗的讲就是个软件。整体架构图如下:

    59ff9ced3dd0d2fbe9b48ff57f0f1fec.png

    在这里对其核心的部分概念进行简单的介绍,没有提及的内容,过于相比较复杂,在后文中再进行进行详细描述:

    • Server:整个结构最核心的部分,命令的真实执行者,里面住着 docker daemon,简单的说就是一个守护docker守护进程,长期的运行着,常驻于内存中,负责创建和管理dockers 对象,比如:image,containers,network和volume。在Linux 中可以找到一个叫 dockerd 的进程就是它。
    • Rest Api: 正如它的名字就是一个对外提供的接口,利用这些接口可以实现对 docker 服务的调用执行,完成和 daemon 通信。
    • Client: 最外层的命令行界面(CLI)。

    三、Docker 架构

    Docker 就是前文提到的C/S 架构,整体架构图如下:

    https://docs.docker.com/engine/images/architecture.svgdocs.docker.com

    Docker 的整体架构分为三部分,Clint,Docker_Host,Registey,上图有很清晰的处理流程:

    • Clinet:和前文中提到的一致,就是命令行的操作界面,通过其使用Api 接口,完成和Doceker daemon 的通信。
    • Docker_Host: Docker 的宿主机,可以是物理机,也可以是虚拟机,上面跑着一个dockers 服务,我们使用 docker daemon 实现对docker 对象生命周期管理。
    • Registey: docker registry 严格意义它不属于docker中,他是另外的一个仓库服务,是docker 镜像的存储中心,docker 的官方仓库为docker hub,也之处我们自己创建。为了方便在开发团队中我们会维护一个仓库,这个仓库我们一般使用 harbor 实现。

    四、Docker 对象

    在上文中我提到一个概念叫 docker 对象,事实这些对象才是我们每天要用的东西,常用的主要有 imagecontainersnetworkvolumesplugins。这里对容器中两个常用的做简单概述说明。

    • images: 是一个封装好的只读模板文件,用于后期创建创建容器使用。内部封装了最小操作系统,你的应用程序,以及一些其他必备服务,这些封装内容完全可以有用户指定。
    • containers:容器是通过image 运行起来的一个实例。可以看作一个进程。内部含有独立的网络和存储,容器与容器,容器与宿主机之间默认是隔离的。
    参考资料:https://docs.docker.com/get-started/overview/
    展开全文
  • 首先这个帖子,献给...至于为什么要在docker中操作宿主机的docker,优点不言而喻,你既可以将你的具体需求容器化部署,又不用直接在宿主机上安装(假设我们没有办法在docker中操作宿主机的docker,那么我们只能将...

    首先这个帖子,献给docker新手。当然如果你是一个老手,文中分割线后的操作方法也是一种思路。

    首先说一下,如何在docker中执行宿主机的docker操作,我们管它叫docker in docker。

    至于为什么要在docker中操作宿主机的docker,优点不言而喻,你既可以将你的具体需求容器化部署,又不用直接在宿主机上安装(假设我们没有办法在docker中操作宿主机的docker,那么我们只能将这样的软件程序直接安装到宿主机上,这样显然是不利于管理和维护的)。

    实现这种需求,其实非常简单,你只需要将docker宿主机的docker文件和docker.sock文件挂载到容器中即可,具体为:

    -v /var/run/docker.sock:/var/run/docker.sock

    -v /usr/bin/docker:/usr/bin/docker

    你要先找到你宿主机的docker和docker.sock位置,别挂载错了,标准的Linux正常来说就是上面的位置。

    你在启动docker容器的时候,将上述两个文件正常挂载后,就可以在docker中执行诸如 docker images 等等这样的命令了。

    如果出现问题 permission denied

    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

    …………………………………………………………

    dial unix /var/run/docker.sock: connect: permission denied

    解决方法

    在容器所在的宿主机上直接给 docker.sock 777权限,命令 chmod 777 docker.sock

    华丽丽的分割线

    下面是针对群辉系统,你不用太关心这个系统是什么,总之就是这个系统在docker方面有一些特有的问题,导致你不能这么随心所欲,所以我采用了一种变通的方法来处理(一种思路,抛砖引玉)先叙述一下现状:

    该系统提供了docker的UI管理工具,我们在这个工具上可以进行常规的挂载操作,但是如果我们想挂载上面的docker和docker.sock文件,就不行了,先看一下截图:

    说一下图上UI操作的局限性!

    群辉官方进行了限制,你可以选择的文件,是不可能选择到 /usr/ /va/ 等这样系统层面的文件的,也就是我们无法直接挂载docker和docker.sock文件。

    做 ln -s 软连接是否可行?

    经尝试,先通过ssh命令行在jenkins文件夹中创建2个软连接(将docker和docker.sock进行软连接),然后回到群辉的UI界面,依然不能选择(因为群辉直接屏蔽了软连接文件,你是看不到的)

    那么如何解决呢?

    我的方法是(软连接的方法变通一下):

    1、在图上的jenkins目录下随便创建2个文件 docker 和 docker.sock 文件(命名正确即可)

    2、然后在docker点击“添加文件”按钮,正常选择这2个文件,进行挂载,你完全可以正常挂载并且完成其他配置,配置完毕后,暂时不要启动docker容器。

    3、登录ssh进入群辉,将jenkins目录中刚刚创建的2个文件删除掉,然后把docker和docker.sock源文件创建软连接到jenkins中。

    root@test:cd /volume1/docker/jenkins/

    root@test:rm -rf docker docker.sock

    root@test:ln -s /run/docker.sock /volume1/docker/jenkins/docker.sock

    root@test:ln -s /usr/local/bin/docker /volume1/docker/jenkins/docker

    root@test:/volume1/docker/jenkins# ll

    total 8

    drwxrwxrwx+ 1 Nuggets users 96 Jun 6 11:22 .

    drwxr-xr-x+ 1 root root 188 May 30 19:29 ..

    lrwxrwxrwx 1 root root 21 Jun 6 11:22 docker -> /usr/local/bin/docker

    lrwxrwxrwx 1 root root 16 Jun 6 11:21 docker.sock -> /run/docker.sock

    drwxrwxrwx+ 1 shanhongyu users 24 Jun 1 11:07 java_home

    drwxrwxrwx+ 1 Nuggets users 4476 Jun 6 11:00 jenkins_home

    drwxrwxrwx+ 1 shanhongyu users 82 Jun 1 11:12 maven_home

    4、然后回到群辉UI,启动容器,这样就完美了。

    (群辉不让你选软连接,但是linux和docker本质上是可以直接挂载软连接的)

    补充知识:使用docker在镜像中运行宿主机程序

    docker run命令用于在新容器中运行命令。docker run命令首先在指定的映像上创建一个可写容器层,然后使用指定的命令启动它。

    也就是说,docker run相当于API /containers/create 和 /containers/(id)/start。

    可以使用docker start重新启动停止的容器,并使用其所有先前的更改完整。 请参阅docker ps -a查看所有容器的列表。

    用法

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    Shell

    例子

    分配名称并分配伪TTY(-name,-it)

    $ docker run --name test -it debian

    root@d6c0fe130dba:/# exit 13

    $ echo $?

    13

    $ docker ps -a | grep test

    d6c0fe130dba debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test

    Shell

    此示例使用debian:latest映像运行一个名为test的容器。 -it 指示Docker分配连接到容器的stdin的伪TTY; 在容器中创建一个交互式的bash shell。 在该示例中,bash shell通过输入exit 13退出。该退出代码传递给docker run的调用者,并记录在测试容器的元数据中。

    捕获容器ID(-cidfile)

    $ docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"

    Shell

    这将创建一个容器并打印测试到控制台。--cidfile标志使Docker尝试创建一个新文件,并将容器ID写入它。如果文件已经存在,Docker将返回一个错误。 Docker运行退出时,Docker将关闭此文件。

    完整的容器功能(-privileged)

    $ docker run -t -i --rm ubuntu bash

    root@bc338942ef20:/# mount -t tmpfs none /mnt

    mount: permission denied

    Shell

    这将不起作用,因为默认情况下,大多数潜在的危险内核功能被丢弃; 包括cap_sys_admin(这是挂载文件系统所需的)。 但是,--privileged标志将允许它运行:

    $ docker run -t -i --privileged ubuntu bash

    root@50e3f57e16e6:/# mount -t tmpfs none /mnt

    root@50e3f57e16e6:/# df -h

    Filesystem Size Used Avail Use% Mounted on

    none 1.9G 0 1.9G 0% /mnt

    Shell

    设置工作目录[-w]

    $ docker run -w /path/to/dir/ -i -t ubuntu pwd

    Shell

    -w允许在目录中执行命令,这里是/path/to/dir/。 如果路径不存在,则在容器内创建。

    为每个容器设置存储驱动程序选项

    $ docker run -it --storage-opt size=120G fedora /bin/bash

    Shell

    挂载tmpfs(-tmpfs)

    $ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image

    Shell

    --tmpfs标志使用rw,noexec,nosuid,size = 65536k选项将一个空tmpfs装载到容器中。

    挂载卷(-v,-read-only)

    $ docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd

    Shell

    -v标志将当前工作目录装载到容器中。 -w允许在当前工作目录中执行命令,将目录更改为pwd返回的值。所以这个组合使用容器执行命令,但在当前工作目录中。

    $ docker run -v /doesnt/exist:/foo -w /foo -i -t ubuntu bash

    Shell

    当绑定卷的主机目录不存在时,Docker将自动在主机上创建此目录。 在上面的示例中,Docker将在启动容器之前创建/doesnt/exists文件夹。

    $ docker run --read-only -v /icanwrite busybox touch /icanwrite/here

    Shell

    卷可以与--read-only组合使用,以控制容器写入文件的位置。 --read-only标志将容器的根文件系统挂载为只读禁止写入容器的指定卷以外的位置。

    以上这篇在docker容器中调用和执行宿主机的docker操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • 本人使用VMware Station 9虚拟机,虚拟机安装的CentOS 6.5操作系统,宿主机是WIN7系统(不过是什么系统都不重要啦) 要完成互相ping通,只需要做两件事情: (1)设置VMware的网络适配器为“桥接”模式,具体操作...

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52267554

    今天给大家带来一篇关于Vmware的的小插曲,好,我们进入正题:

    一、宿主机与虚拟机互相ping通

    这个事情非常简单。本人使用VMware Station 9虚拟机,虚拟机安装的CentOS 6.5操作系统,宿主机是WIN7系统(不过是什么系统都不重要啦)

    要完成互相ping通,只需要做两件事情:

    (1)设置VMware的网络适配器为“桥接”模式,具体操作如下:

    VMware的菜单栏“VM” --> "Settings",选择"Hardware"中的"Network Adapter",右侧的"Network connection"设置为第一项"Bridged". 至于那个勾选框就没必要勾选了。

    (2)设置宿主机与虚拟机操作系统的IP为同一网段,例如:

    宿主机IP设置为:

    IP地址: 192.168.1.100

    子网掩码:255.255.255.0

    默认网关:192.168.1.1


    虚拟机IP设置为:

    IP地址:192.168.1.101

    子网掩码:255.255.255.0

    默认网关:192.168.1.1

    -----------------------------------------------------------------------------------------

    只需上述简单的两步即可实现宿主机与虚拟机互相ping通


    二、宿主机与另外一台机器上安装的虚拟机之间互相ping通

    其实要办到这个也很容易。两台电脑处于同一局域网下面,那么,在上文的基础上,只需要把另外一台机器的宿主机IP也设置为同一网段即可,比如:

    IP地址:192.168.1.102

    子网掩码:255.255.255.0

    默认网关:192.168.1.1


    展开全文
  • 但是容器中无法知道宿主机的ip和映射端口,即eureka上的实例不知道暴露给外部的什么访问IP和端口(宿主机IP和宿主机port)。 请教各位大神,此问题该如何解决,谢谢! **【docker显示宿主机的随机端口32773映射...
  • 什么是宿主机和虚拟机? 举个例子:在一台电脑上安装VMWare,由于VMWare是虚拟机,所以就是虚拟机,而他安装的电脑就是宿主机。 什么是虚拟机? 虚拟机就是在电脑上安装了一个软件,但是这个软件包含了电脑应该...
  • 而网管在使用这些虚拟网络功能时都要依靠vmware workstation提供的桥接、NAT和Host-only(主机模式)这三种虚拟网卡属性的组合来实现,具体桥接、NAT和Host-only是什么意思?桥接、NAT和Host-only有什么作用?桥接、...
  • 虚拟机与宿主机网络模式简述 ...在NAT模式:虚拟机与宿主机是共用一个网络地址的,简单来说宿主机是什么网络虚拟机就是什么网络,宿主机能干什么虚拟机就可以干什么,可以上网。 在桥接模式:虚拟机既与宿...
  • 本人使用VMware Station 9虚拟机,虚拟机安装的XP操作系统,宿主机是WIN7系统(不过是什么系统都不重要啦) 要完成互相ping通,只需要做两件事情: (1)设置VMware的网络适配器为“桥接”模式,具体操作如下(图...
  • 阿里云产品专家何川在2018云栖大会·上海峰会中做了题为《专有宿主机公共云上的专有资源池》的分享,就什么是专有宿主机、专有宿主机能做什么、专有宿主机应用场景等方面的内容做了深入的分析。
  • 利用Docker在不同宿主机上做CentOS系统容器一、背景二、我为什么选择用Docker虚拟化服务器?三、Docker的安装四、Docker容器在不同宿主机间通信4.1、不同宿主机间容器通信原理图4.2、不同宿主机间容器通信安装部署...
  • 首先这个帖子,献给docker...至于为什么要在docker中操作宿主机的docker,优点不言而喻,你既可以将你的具体需求容器化部署,又不用直接在宿主机上安装(假设我们没有办法在docker中操作宿主机的docker,那么我们只...
  • 主机很好理解,计算机里除了输入输出设备之外的主要的机体,大概包含以下几个部分:机箱、主板、CPU、内存、硬盘、显卡等。 而虚拟机,顾名思义,虚拟的主机。... 而宿主机是什么呢?一开始以为“宿”...
  • 一、什么是容器网络栈 所谓容器能看见的“网络栈”,被隔离在自己的Network Namespace当中 网卡(network interface) 回环设备(loopback device) 路由表(Routing Table) iptables规则 当然 ,容器可以...
  • 至于为什么要在docker中操作宿主机的docker,优点不言而喻,你既可以将你的具体需求容器化部署,又不用直接在宿主机上安装(假设我们没有办法在docker中操作宿主机的docker,那么我们只能将这样的软件程序直接安装到...
  • 懒得描述太多,总归解决了...第一,先检查防火墙,通常应该没什么问题(问题解决之后我把这块规则去掉了,发现没什么影响,所以容器的话,可能docker已经解决了防火墙的问题,但是不排除其他人会有这个问题.)添加规则针对...
  • 宿主机win10(192.168.1.0/24)虚拟机win2008r2(192.168.159.0/24)使用NAT模式,宿主机和虚拟机能够互ping通,虚拟机能够ping通与宿主机同一网段的任何计算机,但与宿主机同网段的计算机却不能ping通虚拟机...
  • workstation提供的桥接、NAT和Host-only(主机模式)这三种虚拟网卡属性的组合来实现,具体桥接、NAT和Host-only是什么意思?桥接、NAT和Host-only有什么作用?桥接、NAT和Host-only的区别在哪里,本文将针对桥接、...
  • 懒得描述太多,总归解决了...第一,先检查防火墙,通常应该没什么问题(问题解决之后我把这块规则去掉了,发现没什么影响,所以容器的话,可能docker已经解决了防火墙的问题,但是不排除其他人会有这个问题.)添加规则针对...
  • Docker 多台宿主机多应用部署

    万次阅读 2018-11-12 16:54:54
    文章目录实验目标overlay...  这里存在两台宿主机,55.9 和 55.11,把连个 Container 放在了两台宿主机上,这种方式该怎么进行通信呢,这里就用到了原来没有说到过的 Docker 的另一种网络方式:overlay。 overlay...
  • (假设我们没有办法在docker中操作宿主机的docker,那么我们只能将这样的软件程序直接安装到宿主机上,这样显然不利于管 理和维护的)。 实现这种需求,其实非常简单,你只需要将docker宿主机的docker文件和docker.sock...
  • vmware workstation可以虚拟出来各种真实网络环境、实验环境,...workstation提供的桥接、NAT和Host-only(主机模式)这三种虚拟网卡属性的组合来实现,具体桥接、NAT和Host-only是什么意思?桥接、NAT和Host-on...
  • 阅读后请点击大话专有宿主机,不同云厂商究竟为什么都相继推出了这种产品?发布时间:2018-06-27 09:37:49119人关注1人参与最近几年,云计算已经俨然成为了一种趋势,不仅仅个人用户、创业公司选择在云上搭建自己...
  • 一、什么是容器网络栈所谓容器能看见的“网络栈”,被隔离在自己的Network Namespace当中网卡(network interface)回环设备(loopback device)路由表(Routing Table)iptables规则当然 ,容器可以直接声明使用宿主机的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 844
精华内容 337
关键字:

什么是宿主机