运行第一个容器|运行第一个容器 - 每天5分钟玩转容器技术(4)
2019独角兽企业重金招聘Python工程师标准>>>
文章图片
为了让大家对容器有个感性认识,我们将尽快让一个容器运行起来。
首先我们需要搭建实验环境。
环境选择
容器需要管理工具、runtime 和操作系统,我们的选择如下:
- 管理工具 - Docker Engine
因为 Docker 最流行使用最广泛。
- runtime - runc
Docker 的默认 runtime
- 操作系统 - Ubuntu
虽然存在诸如 CoreOS 的容器 OS,因考虑到我们目前处于初学阶段,选择大家熟悉的操作系统更为合适。等具备了扎实的容器基础知识后再使用容器 OS 会更有利。
本节我们将在 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 \
【运行第一个容器|运行第一个容器 - 每天5分钟玩转容器技术(4)】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
其过程可以简单的描述为:
- 从 Docker Hub 下载 httpd 镜像。镜像中已经安装好了 Apache HTTP Server。
- 启动 httpd 容器,并将容器的 80 端口映射到 host 的 80 端口。
可以访问容器的 http 服务了,第一个容器运行成功!我们轻轻松松就拥有了一个 WEB 服务器。随着学习的深入,会看到容器技术带给我们更多的价值。
镜像下载加速
由于 Docker Hub 的服务器在国外,下载镜像会比较慢。幸好 DaoCloud 为我们提供了免费的国内镜像服务。
下面介绍如果使用镜像。
- 在 daocloud.io 免费注册一个用户。
- 登录后,点击顶部菜单“加速器”。
- copy “加速器”命令并在 host 中执行(你的命令可能跟我的会稍有不同)。
- 重启 Docker deamon,即可体验飞一般的感觉。
小结 我们已经完成了教程的第一部分。
我们认识了容器生态系统,后面会陆续学习生态系统中的大部分技术。我们在 Ubuntu 16.04 上配置好了实验环境,并成功运行了第一个容器 httpd。
容器大门已经打开,让我们去探秘吧。
转载于:https://my.oschina.net/u/2397560/blog/882425
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 历史上的今天|【历史上的今天】2 月 16 日(世界上第一个 BBS 诞生;中国计算机教育开端;IBM 机器人赢得智能竞赛)
- 非暴力沟通05
- 第一个回合(??红龙,白风,蓝夜,黄种子)
- 开始你的第一个Echarts图表(分享自知乎网)
- 第一个程序——helloworld
- Nvidia|lxd容器安装cuda11
- Spring注解05|Spring注解05 @Import 给容器快速导入一个组件
- 运行报错Cannot|运行报错Cannot find module '@babel/compat-data/corejs3-shipped-proposals’