zoukankan      html  css  js  c++  java
  • 运行第一个容器

    为了让大家对容器有个感性认识,我们将尽快让一个容器运行起来。

    首先我们需要搭建实验环境。

    环境选择

    容器需要管理工具、runtime 和操作系统,我们的选择如下:

    1. 管理工具 - Docker Engine
      因为 Docker 最流行使用最广泛。

    2. runtime - runc
      Docker 的默认 runtime

    3. 操作系统 - Ubuntu
      虽然存在诸如 CoreOS 的容器 OS,因考虑到我们目前处于初学阶段,选择大家熟悉的操作系统更为合适。等具备了扎实的容器基础知识后再使用容器 OS 会更有利。

    安装 Docker

    本节我们将在 ubuntu 16.04 虚拟机中安装 Docker。因为安装过程需要访问 internet, 所以虚拟机必须能够上网。

    Docker 支持几乎所有的 Linux 发行版,也支持 Mac 和 Windows。各操作系统的安装方法可以访问:https://docs.docker.com/engine/installation/

    Docker 分为开源免费的 CE(Community Edition)版本和收费的 EE(Enterprise Edition)版本。下面我们将按照文档,通过以下步骤在 Ubuntu 16.04 上安装 Docker CE 版本。

    配置 Docker 的 apt 源

    1. 安装包,允许 apt 命令 HTTPS 访问 Docker 源。

    $ sudo apt-get install

        apt-transport-https

        ca-certificates

        curl

        software-properties-common


    2. 添加 Docker 官方的 GPG


    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


    3. 将 Docker 的源添加到 /etc/apt/sources.list


    $ sudo add-apt-repository

      "deb [arch=amd64] https://download.docker.com/linux/ubuntu

      $(lsb_release -cs)

      stable"

    安装 Docker

    $ sudo apt-get update
    $  sudo apt-get install docker-ce

    运行第一个容器

    环境就绪,马上运行第一个容器,执行命令:

    # docker run -d -p 80:80 httpd



    其过程可以简单的描述为:

    1. 从 Docker Hub 下载 httpd 镜像。镜像中已经安装好了 Apache HTTP Server。


    2. 启动 httpd 容器,并将容器的 80 端口映射到 host 的 80 端口。

    下面我们可以通过浏览器验证容器是否正常工作。在浏览器中输入 http://[your ubuntu host IP]

    26.png

    可以访问容器的 http 服务了,第一个容器运行成功!我们轻轻松松就拥有了一个 WEB 服务器。随着学习的深入,会看到容器技术带给我们更多的价值。

    镜像下载加速

    由于 Docker Hub 的服务器在国外,下载镜像会比较慢。幸好 DaoCloud 为我们提供了免费的国内镜像服务。

    下面介绍如果使用镜像。

    1. 在 daocloud.io 免费注册一个用户。

    2. 登录后,点击顶部菜单“加速器”。

    3. copy “加速器”命令并在 host 中执行(你的命令可能跟我的会稍有不同)。

    4. 重启 Docker deamon,即可体验飞一般的感觉。

    # systemctl restart docker.service

    小结

    我们已经完成了教程的第一部分。

    我们认识了容器生态系统,后面会陆续学习生态系统中的大部分技术。我们在 Ubuntu 16.04 上配置好了实验环境,并成功运行了第一个容器 httpd。

    容器大门已经打开,让我们去探秘吧。

    二维码+指纹.png

  • 相关阅读:
    解决ValueError: Some of types cannot be determined by the first 100 rows,
    关于number_format的一个报错
    关于IPV6审核被拒问题处理
    项目集成三方库由静态库转为动态库遇到的问题总结
    Swift判断对象属于什么类型
    运行项目报错 报scandir() has been disabled for security reasons
    CocoPods port 443
    Jetpack学习-WorkManager
    Jetpack学习-Paging
    Jetpack学习-Navigation
  • 原文地址:https://www.cnblogs.com/CloudMan6/p/6727146.html
Copyright © 2011-2022 走看看