当前位置: 首页 > news >正文

运行第一个容器 - 每天5分钟玩转容器技术(4)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

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

环境选择

容器需要管理工具、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

转载于:https://my.oschina.net/u/2397560/blog/882425

相关文章:

  • thrift实例:python实现
  • 微信开放平台手机APP支付
  • px PPI
  • fedora25输入法,中文输入法该用哪个——rime
  • 如何培养《未来架构师》(1)
  • 数字格式化工具:Numeral.js 简介
  • nginx防盗链和内核参数优化
  • 三列布局
  • ActFramework r1.2.0 带来的新特性
  • p2p网贷3种运营模式
  • [转][译] Closures in Lua - Lua中的闭包
  • MyBatis介绍和架构
  • JS 创建对象的5种写法
  • python之转义字符(学习笔记三)
  • 1015. 德才论 (25)
  • C# 免费离线人脸识别 2.0 Demo
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • javascript面向对象之创建对象
  • Python3爬取英雄联盟英雄皮肤大图
  • React的组件模式
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Spring Boot快速入门(一):Hello Spring Boot
  • spring security oauth2 password授权模式
  • 多线程 start 和 run 方法到底有什么区别?
  • 分布式熔断降级平台aegis
  • 机器学习学习笔记一
  • 码农张的Bug人生 - 见面之礼
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 如何选择开源的机器学习框架?
  • 深入浅出webpack学习(1)--核心概念
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 阿里云服务器购买完整流程
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​比特币大跌的 2 个原因
  • ​低代码平台的核心价值与优势
  • # centos7下FFmpeg环境部署记录
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)JAVA中的堆栈
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)Windows2003安全设置/维护
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net Application的目录
  • .NET Core引入性能分析引导优化
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • :O)修改linux硬件时间
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @test注解_Spring 自定义注解你了解过吗?