还在使用虚拟机?30分钟教你快速入门Docker( 二 )

  • 下载安装
  • 官方下载地址:(mac):https://download.docker.com/mac/stable/Docker.dmg
    阿里云下载地址(Mac):> http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/>
    阿里云下载地址(windows):> http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/
    这里,双击刚刚下载的 Doker.dmg 安装包进行安装 。
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    安装完成后启动,Mac 顶部导航栏出现了一个图标,通过菜单可以进行 docker 配置和退出等操作 。
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    官方指南:https://docs.docker.com/install/
    阿里云指南(Linux):https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.468b1991jdT95t
    • 设置加速服务
     
    市面上有很多加速服务的提供商,如:DaoCloud,阿里云等 。这里,笔者使用的是阿里云 。(注意的是,笔者操作系统是 Mac,其他操作系列参见阿里云操作文档)
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    右键点击桌面顶栏的 docker 图标,选择 Preferences,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors 列表中将
    https://xxx.mirror.aliyuncs.com 加到"registry-mirrors"的数组里,点击 Apply & Restart 按钮,等待 Docker 重启并应用配置的镜像加速器 。
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    阿里云操作文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
    • 查看版本
     
    至此,我们已经安装完成了 。这里,我们来查看版本 。
    docker version查看结果,如下所示 。
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    2. 实干派,从搭建 Web 服务器开始
    我们作为实干派,那么先来搭建一个 Web 服务器吧 。然后,笔者带你慢慢理解这个过程中,做了什么事情 。首先,我们需要拉取 centos 镜像 。
    docker run -p 80 --name web -i -t centos /bin/bash紧接着,我们安装 nginx 服务器,执行以下命令:
    rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm安装完 Nginx 源后,就可以正式安装 Nginx 了 。
    yum install -y nginx至此,我们再输入 whereis nginx 命令就可以看到安装的路径了 。最后,我们还需要将 Nginx 跑起来 。
    nginx现在,我们执行 ctrl+P+Q 切换到后台 。然后,通过 docker ps-a 来查看随机分配的端口 。
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    这里,笔者分配的端口是 32769,那么通过浏览器访问 http://127.0.0.1:32769 即可 。
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    大功告成,哈哈哈~
    3. 复盘理解全过程
    现在,我们来理解下这个流程 。首先,我们输入 docker run-p80--name web-i-t centos/bin/bash 命令会运行交互式容器,其中 -i 选项告诉 Docker 容器保持标准输入流对容器开放,即使容器没有终端连接,另一个 -t 选项告诉 Docker 为容器分配一个虚拟终端,以便于我们接下来安装 Nginx 服务器 。(笔者备注:Docker 还支持输入 -d 选项告诉 Docker 在后台运行容器的守护进程)
    Docker 会为我们创建的每一个容器自动生成一个随机的名称 。事实上,这种方式虽然便捷,但是可读性很差,并且对我们后期维护的理解成本会比较大 。因此,我们通过 --name web 选项告诉 Docker 创建一个名称是 web 的容器 。此外,我们通过 -p80 告诉 Docker 开放 80 端口,那么,Nginx 才可以对外通过访问和服务 。但是,我们的宿主机器会自动做端口映射,比如上面分配的端口是 32769,注意的是,如果关闭或者重启,这个端口就变了,那么怎么解决固定端口的问题,笔者会在后面详细剖析和带你实战 。
    这里,还有一个非常重要的知识点 docker run。Docker 通过 run 命令来启动一个新容器 。Docker 首先在本机中寻找该镜像,如果没有安装,Docker 在 Docker Hub 上查找该镜像并下载安装到本机,最后 Docker 创建一个新的容器并启动该程序 。
    还在使用虚拟机?30分钟教你快速入门Docker

    文章插图
     
    但是,当第二次执行 docker run 时,因为 Docker 在本机中已经安装该镜像,所以 Docker 会直接创建一个新的容器并启动该程序 。


    推荐阅读