zoukankan      html  css  js  c++  java
  • Docker Toolbox安装

    公司最近搭建docker环境,其中会遇到一些问题,在这里记录一下。

    先来了解一下docker

    一、基本概念

    1.Docker中基本概念
    镜像(Image)

     提到镜像,有对操作系统有一定认知的都知道,镜像是一个压缩的ISO文件,里面包含操作系统运行所需要的运行环境以及库文件,配置文件等等。从认识上简单的来说,镜像就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。而docker镜像相当于是一个root文件系统,除了提供容器运行所需要的程序,库,资源,配置等文件还包括运行时准备的一些配置参数(匿名卷,环境变量,用户等)。镜像不包含任何动态数据,在构建完成之后本层镜像就不会被改变。

                  docker镜像在设计之时,就充分使用Union FS 技术,并被设计为分层存储的架构。所以与传统意义上的镜像有着很大不同,它并非体现为一个打包的文件,而是由一组文件系统组成,或者说由多层文件系统联合组成。

                   镜像构建时,由下网上一层一层构建,每一层构建完成后就不会发生改变,后一层上对上一层的改变都发生在本本层。删除上一层文件也只是标记删除,并不会影响上一层。所以,构建镜像时,每一层尽量包含本层需要的东西,其他额外的东西应该在构建结束前清理掉。

    容器(Container)

    容器的实质是进程,是镜像的实例化, 但与直接在宿主执行的进程不同,容器进程运行与属于自己独立的命名空间,因此容器可以拥有自己的root文件系统,自己的网络配置,自己的进程空间。实质是进程,所以拥有进程的所有特性,可以被创建,启动,暂停,停止,删除等。 

               由于镜像的特殊架构,使用分层存储,容器运行时,以镜像为基础层,在基础层上,创建当前容器存储层,相当于进程的栈空间。容器存储层和容器一样,容器进程退出时,其对应的容器存储层也随之消亡。所以容器运行时产生的任何数据都不应放在容器存储层,所有文件写入操作都应该使用数据卷,或者绑定宿主目录,直接对宿主发生读写。

    仓库(Repository)

      仓库保存定义好的镜像,提供保存,下载,版本管理等等功能。通常一个docker Registry 服务包含多个仓库,每个仓库可以包含多个标签tag,每个标签对应一个镜像。若包含的镜像相同版本不同,通常以标签分别标识,我们可以通过<仓库名>:<标签>指定具体那个镜像。如果不给出标签默认以latest作为默认标签。

              公开的仓库服务有很多,默认使用官方的Docker hub ,它拥有大量高质量的官方镜像,此外还有coreOs的Quay.io,google 的Goolge Container Registry(K8S),国内访问可能会比较慢,所以国内的云服务商提供了一些针对Docker Hub的镜像服务,常见有:阿里云加速器,DaoCloud 加速器,灵雀云加速器。

                国内也有类似Docker Hub的仓库服务。比如时速运镜像仓库,网易云镜像服务,DaoCloud镜像市场,阿里云镜像库等。当然有公开的仓库服务,自己也可以搭建私库,常见使用sonatype Nexus 以及 WMWare Harbor搭建私库,有时间学习一波再来更新。

    (非原创,摘自https://blog.csdn.net/qq_40101333/article/details/81129248 )

    2.Docker Toolbox

    Docker Toolbox是作为不满足 Docker 安装要求的旧 Mac 系统/旧 Windows 系统的一种解决方案。

    Docker Toolbox 里面包含啥?:

    Docker Machine:用于运行 docker-machine commands

    Docker Engine:用于运行行 docker commands

    Docker Compose:用于运行 docker-compose commands

    Kitematic:一个 Docker GUI,即一个 Docker 图形用户界面

    Docker QuickStart shell:一个预配置好了 Docker command-line environment 的 shell

    Oracle VirtualBox  :虚拟机

    3 What you get and how it works  你会下载到啥?它是怎么工作的?

    下载的内容包括:Docker Machine、Docker Engine、Docker Compose、Kitematic、Docker QuickStart shell、Oracle VirtualBox 

    因为 Docker Engine 的守护进程依赖于 特定的 Linux 内核特性,所以你不能在 Windows 本地直接运行 Docker Engine。

    因此,必须使用 Docker Machine command、docker-machine 来创建和连接到一个本地机器上的 small Linux VM。

    这个 Linux VM 在你的 Windows 系统上为你运行着 Docker Engine。

    二、安装

    因为只在win系统下操作过安装,所以只说win的安装方法,Linux以后用到的话就再补充

    1.查看当前系统版本是否支持docker安装

    (1)支持直接安装 Docker for Windows 的

    如果是 64位 Windows 10 Pro/Enterprise/Education,并且带有 Microsoft Hyper-V,则可以直接安装 Docker for Windows。

    (2)不支持的上述版本的,安装Docker Toolbox

    如果我们的机器不是 64 Windows 10 Pro/Enterprise/Education,那么就需要额外做一些工作:安装 Docker Toolbox

    (我的电脑是WINDOWS 家庭版本,所以以下安装方法是基于Docker Toolbox的操作步骤

    2. 安装条件检查

    1.检查 Windows 系统是否是 Windows 7 及更高版本。如果满足文章开头说的第一种情况的,则建议直接安装 Docker for Windows。

    官网下载路径:https://docs.docker.com/docker-for-windows/install/

     Docker支持64 位版本的Windows 10 Pro,且必须开启Hyper-V

    (1)确定 Windows 系统支持 Hardware Virtualization Technology 并已启用。

    (查看方法:Ctrl+Alt+Delete 打开任务管理器 –> 选择性能选项卡即可看到虚拟化的状态,在虚拟化后面跟的是已启用则表示已正常开启,否则未开启。)

    (2)检查 Windows 系统的位数,必须是 64位的系统。

    2.其他版本的安装 

    (1)先下载 Docker Toolbox for Windows 安装包

    官网下载路径:https://docs.docker.com/toolbox/overview/

    Docker Toolbox的安装

    (1)双击安装包进行安装Docker Toolbox

    选择安装目录,一路下一步,最终安装完成

    安装完成后,在你电脑桌面上看到新增了三个图标

    (3)打开Docker Quickstart Terminal图标,启动一个终端,它会做一些事情来初始化 Docker Toolbox。

            第一次启动的话你会看到命令行会输出一些东西,等待一下,它会配置Docker Toolbox,当它完成后,你会看到启动成功的画面

     

     这个终端是一个特殊的 bash 环境,而不是标准的 Windows 命令行工具。这个 bash 是 Docker 所必须的

     (4)在命令行中输入docker run hello-world并按回车键,如果docker配置成功的话,你会看到命令行中有如下输出:

     

    三、问题记录

    在第一次打开终端的时候,遇到了各种报错

    (1)error in driver during machine creation:This computer doesn’t have VT-X/AMD-v enabled .Enabling it in the BIOS is mandatory

    这个意思就是说你的虚拟机没有打开,这时手动打开虚拟机会发现下面问题:

    这时当使用VirtualBox启动虚拟机时提醒“虚拟电脑控制台 - 错误”,说明你电脑虚拟化技术处于被禁用状态。
    这时就要启动BIOS的虚拟化设置 | 开启CPU虚拟化支持。
    重启电脑后按F2或F10进入BIOS界面(不同主板型号进入BIOS所需按键不同)。
    进入BIOS界面:Configuratio > Intel Virtualization Technology > Enabled。
    注:主板不一样其BISO中显示关键词也不一样的,主要是找到Virtual或Virtualization将其设置为Enabled。
    (2)Looks like something went wrong in step ´Finalize´...

    解决方法:找到docker toolbox的安装目录,找到start.sh文件,把其中的clear注释掉  示例: #clear

    (3)Looks like something went wrong in step ´Checking if machine default exists´... Press any key to con

    报错信息如下:

    这是因为,启动时如果检测到没有 Boot2Docker,就会去下载,这个下载过程出现网络连接上的错误了,导致启动失败

     1.先删除下载失败的临时文件 (c盘-用户-找到当前用户)

    C:Userswj.dockermachinecache

    2.自己用其他工具去下载对应的 boot2docker.iso 文件

             我是直接用的其他同事正常安装上的文件

    3.然后放置到对应的目录

    4.重新打开Docker Quickstart Terminal

    (4)looks like something went wrong in step ‘looking for vboxmanage.exe’

     问题是 Docker 找不到 vboxmanage.exe,查看 Docker 安装目录下的 start.sh,发现以下代码片段:

    此脚本是使用 VBOX_MSI_INSTALL_PATH 和 VBOX_INSTALL_PATH 这两个环境变量来定位 VBoxManage.exe 的,查看一下自己的环境变量,是否存在(有其中一个即可)。

    我的有设置,但是设置的是 D:VirtualBox,对比以上代码不难发现问题所在,改为 D:VirtualBox 就好了!

    四、简单命令

     在$后输入各种docker命令就可以使用docker了

    (1)查看docker的版本信息

            docker info

    (2)登陆docker Hub的账号

          docker login

          然后,输入用户名和密码

           在使用docker时,是否登陆没有特别大的影响,区别是 :如果登陆了,就可以向docker hub上push自己的镜像了

    (3)查看本机images

        docker images

    (4)查看本机运行的container

         docker ps

    (5)从dockerhub上pull 镜像

        docker pull 镜像名称

  • 相关阅读:
    BZOJ3752 : Hack
    XIV Open Cup named after E.V. Pankratiev. GP of SPb
    XIII Open Cup named after E.V. Pankratiev. GP of Ukraine
    BZOJ2087 : [Poi2010]Sheep
    BZOJ2080 : [Poi2010]Railway
    BZOJ2082 : [Poi2010]Divine divisor
    Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
    XIII Open Cup named after E.V. Pankratiev. GP of Asia and South Caucasus
    XIII Open Cup named after E.V. Pankratiev. GP of Azov Sea
    XIII Open Cup named after E.V. Pankratiev. GP of SPb
  • 原文地址:https://www.cnblogs.com/yaoyaojing/p/9876743.html
Copyright © 2011-2022 走看看