zoukankan      html  css  js  c++  java
  • 关于docker使用的几个小问题(一)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃

     

      由于刚接触docker踩了几个坑,希望本文对网瘾少年有所帮助。

      Docker分CE版(社区版)和EE版(商用版),具体安装流程参考文档介绍,在此不再赘述。下面分Windows和Linux分别踩坑:

    一、Windows下的使用

      Win10可以直接安装Docker ToolBox,网上很多配置教程,但是当你百度Win7安装,常见的几个都是安装Boot2Docker。其实Docker ToolBox也是支持Win7的,所以这里就别踩坑了,因为Docker ToolBox里面已经集成了Boot2Docker。这里我不会详细讲解安装步骤,只谈自己碰到的问题,如果你有和我相同的疑惑,相信可以在我这里可以找到答案。

      Boot2Docker其实是Win环境下的一个Linux虚拟机,必须配合virtualBox使用,如果你安装了Docker ToolBox,打开virtualBox可以看到这个虚拟机:

      直接官网下载Docker ToolBox,安装完成运行DockerQuickStartTerminal,执行命令:

    docker-machine ls   ##我已经把boot需要的Linux镜像下载了,下载过程比较慢,建议科学上网。

    docker-machine env default  ##查看dockertools环境变量:

    eval $("C:Program FilesDocker Toolboxdocker-machine.exe" env default)    ###根据提示运行命令:写入环境变量

      此时我们是在docker环境下的,可以尝试run一个镜像试试(这里试了ubuntu:16.04,本地没有的镜像会自动下载)

    docker run -it ubuntu:16.04     ##执行run命令,出现错误提示:

      说明我们运行的方式不太好,按照建议修改run方式:

    winpty docker run -it ubuntu:16.04  ##重新执行,成功进入系统

      或者,可以通过ssh的方式进入docker环境,在任意的bash环境下输入命令:

    docker-machine ssh default  #在任意bash下执行进入VMbash

    docker run -it ubuntu:16.04     ##执行run命令成功进入系统,不会提示使用winpty方式运行。

       Linux下的安装配置没啥坑,yum、apt直接装就好了。

    二、使用国内镜像加速器

      docker默认使用的镜像服务器都在国外,速度比较感人,所以需要镜像加速。我使用的是阿里云镜像加速,建议自己去注册一个阿里云账号,进入个人的容器镜像服务->docker hub镜像站点,就可以看到自己的镜像加速地址,阿里云的手册中有各个环境下的配置方法。这里给比较懒的同学推荐中科大的镜像加速地址:

      1. Windows下配置镜像加速

    #通过docker-machine进入docker环境
    docker-machine ssh default
    #修改boot2docker配置文件
    sudo vi /var/lib/boot2docker/profile
    #在--label provider=virtualbox的下一行添加
    --registry-mirror https://docker.mirrors.ustc.edu.cn
    #重启docker服务 sudo /etc/init.d/docker restart
    #或者重启VM:exit退出VM bash,在windows bash中执行 docker-machine restart

      2. Linux下配置镜像加速器(Ubuntu16.04)

      参照阿里云配置docker的daemon.json文件:

    vim /etc/docker/daemon.json  ###
    {
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
    systemctl restart docker.service ##重启服务

      有的同学应该会在重启服务的时候报错:

    Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.

      查看一下systemctl status docker.service

      这个错误的原因是:docker的socket配置出现了冲突,docker在运行时有一个启动入口文件:/lib/systemd/system/docker.service,而我们在修改镜像加速器的时候又给它生成了一个配置文件:/etc/docker/daemon.json,两个文件对host进行了配置,所以发生冲突。

      解决的办法:将docker启动入口文件中的-H fd://删除再重启服务,或者在启动入口配置监听的端口和本地socket信息:

    vim /lib/systemd/system/docker.service
    #原:ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
    ExecStart=/usr/bin/dockerd

    #或者改成:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

     三、镜像在哪里

      1. 在Linux下

      我们很容易就可以找到镜像目录,镜像是以层次结构存储的。 每当创建一个pull一个新的image或者容器时会在/var/lib/docker/graph/*生成对应ID的目录存储元数据,/var/lib/docker/aufs/diff/*目录生成对应ID的目录存储数据。 当容器被删除或者image被移除时,对应的目录也会被移除。

      2. 在Mac下

      官方提供的DockerToolBox,不得不吐槽,Windows差距怎么就这么大呢。Mac下通过Open in Finder可以很轻松找到文件目录,Mac硬盘小,玩docker压力还是比较大的,只能拿来测试练练手,土豪随意。

      3. 在Windows下

      也是用的官方的ToolBox,正如前文所述,它需要在VirtualBox下运行一个虚拟机,所以我们就在这个虚拟机中找我们的docker就行了。废话不多说,直接看图。

       综上所述,不推荐使用Windows玩docker,建议阿里云申请个免费ECS,玩起来随便折腾,而且现在京东、华为、腾讯都在折腾云计算,很多免费资源,不用白不用,改天不忙了写个小白科普文。

  • 相关阅读:
    正则 不匹配某个单词
    希赛 系统架构设计师教程 勘误
    QQ 快速登录中获取用户信息
    requests 配置tor代理后提示'Failed to establish a new connection: [Errno -2] Name or service not known'
    xadmin choice filter 多选
    kali linux 热点 无法获取IP
    windows10 输入法添加小鹤双拼
    del: recycle for linux
    安装WSL2
    cmake(转载)
  • 原文地址:https://www.cnblogs.com/mar-q/p/7636424.html
Copyright © 2011-2022 走看看