Docker折腾史

498 阅读4分钟

#Docker折腾史

##Docker是什么
根据官方的定义,Docker通过将软件打包至容器,便于开发、传输和部署。

Docker像是一个轻量级、标准化、可执行的包。

  1. 打包:里边打包了一系列你所以需要执行的事物:代码、执行环境、系统工具、系统库甚至于配置。
  2. 操作系统无关:同时Docker与操作系统无关,无论是Linux或者是Windows环境,容器里的软件都可以正常运行。
  3. 相对独立:另外,容器里的软件可以跟容器外的环境隔离开,不影响不同的团队在相同一台基础设施上部署开发和测试环境。

##Docker架构

Docker的简单架构示意如下:
Docker是一个客户-服务器(C/S)架构的程序。客户端是向Docker服务器的守护线程发出请求,守护线程接受线程将完成所有工作并返回结果。

你可以同时在同一台宿主机上安装Docker客户端和服务器


也可以在不同的宿主机上安装Docker客户端和服务器

##Docker安装

因为我的系统是Windows,这里简单讲下win7下怎么安装docker以及背后的坑...

  1. win7需要先安装Docker Toolbox,附上链接:www.docker.com/products/do…
    下载完直接运行安装即可

    鉴于国外网速太慢了,可以直接使用阿里云下载toolbox:mirrors.aliyun.com/docker-tool…

  2. 安装的时候建议使用Docker-machine安装,配置上对应的阿里加速地址,具体操作可以参考链接:

    cr.console.aliyun.com/#/accelerat…

  3. 有一点需要注意,你的Windows系统需要打开VT-x,不然安装的时候会报错,具体操作参考链接:
    www.sysprobs.com/disable-ena…

    在重启电脑的时候进入BIOS,进行设置,激活下Intel Virtualization Technology 这个配置就行

  4. 如果你在安装Docker之前就已经装了Git,那么在你安装好Docker之后,双击Docker Quickstart Terminal快捷方式会报错,提示你Windows正在查找 bash.exe,只需把Docker客户端的快捷方式里,默认指向Git安装路径改为实际的Git安装路径即可

    解决方法参考链接:blog.csdn.net/petershushe…

  5. 设置完之后,双击进入客户端,会提示当前版本的boot2docker版本太低,需要从服务器抓取最新的版本。这个时候如果你等待系统自动更新的话,会等很久(可能是因为GFW的原因...)。这个时候可能需要翻墙,上github里把相应版本的boot2docker.iso单独下载好,放至C:\Users#你的用户名#.docker\machine\cache 目录下,附上下载链接:github.com/boot2docker…

##Docker使用

当你老老实实踩完上面的坑之后,恭喜你在win7下载并可以允许Docker了!!!

然而,别高兴得太早...win7下的Docker使用之路还要再继续走一段...

  1. 当我们安装完之后,打开Docker会发觉在Linux下可以正常使用鼠标左键选择复制,右键黏贴的功能,在这里无法使用。
    这里有两个方法:

    1. 在Docker界面下敲入start命令行,就会弹出CMD窗口,在CMD窗口下我们可以正常使用相关的Linux命令;
    2. 使用远程工具putty.exe或者其他工具:默认IP是192.168.99.100,端口是22,用户名是docker,密码是tcuser。 参考链接:www.cnblogs.com/jinjiangong…
  2. 使用Docker常用的命令,进行ubuntu镜像的安装,根据docker的生命周期,整理了一些相关命令集合,如下:

    1. 配置Dockerfile的话,使用一些常用的命令FROM/ADD/COPY/RUN/CMD即可,参考链接:segmentfault.com/a/119000000…

    2. 假如你要安装ubuntu,上去官方网址查看对应ubuntu的代码,如果想安装ubuntu16,则敲入FROM ubuntu:latest 即可。具体命令参考链接:
      store.docker.com/images/ubun…

    3. 这里有个问题,就是你直接敲入FROM ubuntu:latest,那么在apt-get update的时候由于对应的源是在国外的地址,会导致更新的时候特别的慢,这个时候就需要巧妙地利用Dockerfile里的COPY命令,找到对应版本ubuntu的阿里源,写到source.list文件中,在build构建镜像的时候,将该文件COPY到镜像里替代原来的源即可。参考链接:
      www.cnblogs.com/lyon2014/p/…

      附上我的source.list,阿里云的源都是大同小异,只不过把xunial改为对应的版本代号即可

       deb http://mirrors.aliyun.com/ubuntu/ xunial main multiverse restricted universe
       deb http://mirrors.aliyun.com/ubuntu/ xunial-backports main multiverse restricted universe
       deb http://mirrors.aliyun.com/ubuntu/ xunial-proposed main multiverse restricted universe
       deb http://mirrors.aliyun.com/ubuntu/ xunial-security main multiverse restricted universe
       deb http://mirrors.aliyun.com/ubuntu/ xunial-updates main multiverse restricted universe
       deb-src http://mirrors.aliyun.com/ubuntu/ xunial main multiverse restricted universe
       deb-src http://mirrors.aliyun.com/ubuntu/ xunial-backports main multiverse restricted universe
       deb-src http://mirrors.aliyun.com/ubuntu/ xunial-proposed main multiverse restricted universe
       deb-src http://mirrors.aliyun.com/ubuntu/ xunial-security main multiverse restricted universe
       deb-src http://mirrors.aliyun.com/ubuntu/ xunial-updates main multiverse restricted universe`

      构建好镜像之后,敲入docker run --it --name myubuntu imgubuntu,即可进入对应的ubuntu容器里~