手把手教你使用Google Container-Optimized OS定制系统

手把手教你使用Google Container-Optimized OS定制系统

谷歌云(Google Cloud) + Docker使用完全教程

这篇文章我们来详细介绍如何在谷歌云服务器(GCP)上运行使用Docker。 文末有本文对应的视频教程,不喜欢读文字的朋友可以直接观看视频教程。

首先我们几句话聊下Docker。Docker是时下比较流行的容器化技术的代表,Docker 是一个开源的应用容器引擎。实际Docker技术自2013年以来都在逐步流行,只是近些年随着互联网技术从传统架构向云架构到容器化、微服务化的过度过程,Docker技术也随之愈发的流行。

Docker作为容器化技术的代表,具有轻量、安全、标准、可伸缩、即抛等诸多优秀的特点。关于Docker的知识还有很多,这里不再展开,有兴趣的同学可以自行了解学习。

闲话至此,下面我们来为大家介绍如何在谷歌云(GCP)服务器运行Docker。谷歌云为每个新用户提供了300美金的为期一年的试用额度,通通各种方式基本基本可以无限重置,是众多羊毛党乐此不疲的项目,如果有新手同学不熟悉或者感兴趣,后期我会制作一期详细的视频教程。

谷歌云使用Docker有两种方式,原生Linux安装运行Docker和使用Container-Optimized OS

1. 原生Linux运行Docker

最常用的方式就是在Computer-Engine中创建VM实例并安装诸如CentOS等常见的发行版Linux系统,然后在原生Linux系统中按照常规方式安装Docker,此方式简单易行,直接参考Docker官方文档即可,新手同学可以参考 CentOS 8安装Docker 这篇的文档,下面为不喜欢读文字的观众老爷们送上视频教程。

下面为国内无法访问YouTube的朋友放上B站视频。

2. Container-Optimized OS

本文的重点就是为大家介绍在谷歌云(GCP)上这种更妥帖的Docker运行使用方式。

Container-Optimized OS 是适用于 Compute Engine 虚拟机的操作系统映像,专为运行 Docker 容器而优化。Container-Optimized OS 由 Google 维护,基于 Chromium OS 开放源代码项目。一句话概括,Container-Optimized OS就是Google为运行Docker而定制优化的Linux操作系统,以让Docker使用更加简洁高效。

2.1 系统安装

要使用Container-Optimized OS只需要在新建VM实例时,选择启动磁盘的时候选择Container-Optimized OS系统即可,过程如下图所示:

GCP操作系统选择

VM实例默认已经为我们安装好了最新版的Docker并做好了参数调优配置,实例创建完成之后,就可以直接在系统中查看和使用Docker,可以通过以下指令进行简单测试。

# 查看docker版本信息
docker --version

# 运行hello-world实例程序
docker run hello-world

2.2 安装扩展应用

Container-Optimized OS默认已经帮我们安装了少量的常用应用,如 git/vim/ssh等,但很多情况下这不足以满足我们的个性化需求,如运维人员喜欢使用 htop 来检测系统资源使用情况,此时就需要我们手动安装 htop

作为定制化系统,Container-Optimized OS 并不包含程序包管理器,但我们可以使用预先安装的CoreOS 工具箱(/usr/bin/toolbox)实用程序来安装所需的其他任何程序包或工具。

首次在命令行执行 toolbox 命令,可以看到系统会首先去拉取toolbox镜像,然后创建一个特殊的toolbox容器。toolbox容器内部为了提供了一个类似于 Debian shell 的环境,我们可以在toolbox容器肆意妄为了,比如通过下面的命令安装 htop

# 安装htop
apt-get update && apt-get install -y htop

# 运行htop
htop

除了以上方式我们还可以使用简写表示法来调用工具箱中的工具。如:

toolbox apt-get update && apt-get install -y htop
toolbox htop

2.3 数据共享

toolbox是一个特殊定制容器,通过 docker ps -a 看不到其信息,容器退出之后其资源也不会被释放,再次进入容器其资源依然可以正常访问。如果要共享数据,我们也不能使用普通容器一样挂载卷。

默认情况下,toolbox容器与宿主机存在以下路径映射关系,/ : /media/root 。宿主机的更路径会默认映射到toolbox容器的 /media/root 目录。借由此映射关系我们就可以在toolbox与宿主机之间共享数据。

推荐大家按照视频讲解逐步操作,中间遇到任何问题可以在文末留言。完整视频内容可访问 YouTube / B站 查看,也欢迎加入 TG群 讨论交流。