8月4日下午,伴着淅淅沥沥的小雨,【8月4日】GDG 带你拥抱容器入门实战圆满举办。这次活动由上海 GDG 组织发起,有近两百位小伙伴参与报名,现场有超100名小伙伴和老师一起完成了全部实战内容,收获颇丰。有超过90%的小伙伴非常愿意将我们的活动分享给身边的朋友,我们也在文后准备了课程内容分享和资料链接(还有一个彩蛋),帮助到没有来现场的小伙伴们~
注意:本次课程是拥抱容器系列课程中的第一课,后续的课程也在加紧筹备中,请大家关注本公众号,以便获得活动最新报名消息哦~!
这次课程我们请到了来自 DaoCloud 的工程师--孟繁超,为大家深度指导关于容器的入门实战。孟繁超曾曾就职于 ThoughtWorks, Alibaba 等公司,现加入 DaoCloud 主要负责 K8s 相关的 DevOps 工具链的设计和开发,有着丰富的 Python 开发和架构经验。同时,孟老师也是一名全栈工程师,译著有.

孟繁超老师(右1)在给各位小伙伴答疑指导
小伙伴互相讨论

场地有限,座椅不够,大家就站着、甚至坐在地

桌子不够,大家就自己抱着电脑操作

你认真Coding 的样子真帅

偷拍一张高空照

老师分享理论基础

小伙伴自我分享
所有的小伙伴都参与到互动问答中,并且认真完成了老师布置的实战任务,当然GDG 不仅为
各位小伙伴准备了良心干货,还特别准备了丰富的茶歇和精美的 Google 周边小礼品,帮助大家打造欢乐的学习气氛。

实录分享
没来现场?完全不用担心哦,超级详细的现场实录分享就在这里,下面跟着我们一起来看下👇
Step 1: 安装Docker:
https://docs.docker.com/install/

Step 2: Docker的简单指令
查看Docker 版本
当Docker 安装完成后,可以用下面的命令来查看
版本信息: docker –version配置信息: docker infohelp 信息: docker –help

Step 3: 运行你的第一个docker 镜像

Step 4: Docker 命令行工具介绍
Docker CLI 指令分为两类,一类是 Management Commands,一类是镜像与容器Commands。
你可以通过docker –help 进行查看。
Docker 的命令格式为:
这里我们选取常用的几个命令进行示例:
docker pull : 从镜像仓库中拉取镜像
eg:

docker run :
eg:
docker run –it ubuntu:latest
- -i : interactive mode
- -t: 分配tty

Docker-CLI 与Linux 语法具有相似性,例如:
docker image ls docker container lsdocker container ps
如果你有Linux 基础,那么相信对于Docker-CLI 上手还是比较容易的。
有了上面的基础,那么让我们来进入一个实战吧。
实战-1:2048 Web
docker run -d -P daocloud.io/daocloud/dao-2048
Tip: -d 表示容器启动后在后台运行
用docker ps 查看容器运行状态如图:

看到端口映射关系 0.0.0.0:32768->80。指宿主机的 32768 端口映射到容器的 80 端口,用浏览器
打开localhost:32768

Dockerfile 简介
Docker 可以从Dockerfile 文件中构建镜像,Dockerfile 语法请参考:
https://docs.docker.com/engine/reference/builder/

只需要几个基本的语法就能构建出我们需要的容器。
FROM : 这会从 Docker Hub 中拉取镜像,目的镜像基于所拉取的镜像进行搭建
WORKDIR: RUN, CMD, ENTRYPOINT, COPY, ADD以此为工作路径
COPY:拷贝文件或文件夹到指定路径
RUN:镜像的最上层执行命令,执行后的结果会被提交,作为后续操作基于的镜像。
EXPOSE:暴露端口号
ENV:设置环境变量
CMD["executable","param1","param2"]:一个Dockerfile 应该只有一处 CMD 命令,如果有多处,则最后一处有效。
实战 -2: 搭建Python Web
首先准备一个Dockerfile 文件与一个app.py 文件

分别执行:

中间输出结果:



Docker 生成container时会生成一个唯一的container-id,在上图中stop 命令用到了container-id。当然,你可以使用docker tag 命令对container 进行重命名。
Tip:
-p 4000:80 : 指的是从宿主机端口4000 映射到容器端口80
现在打开浏览器访问localhost:4000:

更多资料可以访问获取幻灯片:
https://devs.wiki/gdg/k8s/ch01/
! 彩蛋 !
这次课程的PPT网页链接中有一个彩蛋评论区,大家可以在PPT网页下方评论区留言提问,老师都会为大家一一解答,但,能不能找到这个评论区,就看大家的了!
系列课程安排
拥抱容器:Docker 与 K8s 的入门课实战系列课程
本次课程分为两大部分五个章节,分别为容器与微服务部分,和容器编排部分。
第一部分着重于 Docker 的介绍,共两次课;第二部分着重于 K8s 的介绍,共三次课。
通过本次课程,你将相对完整的了解 Docker 与 K8s 的背景知识,熟悉 Docker 和 K8s 的基础概念和安装方式,并具备一定的实战能力。
Docker 基础入门
- docker 简介与历史
- docker 架构
- docker 安装
- dockerfile 的编写
- docker 与 python 的结合
- 镜像的发布
Python web开发及其与docker的结合
- python web编程基础
- docker与python的结合
K8s 扩展与部署
- k8s 部署s3兼容的文件服务
- k8s api扩展之metacontroller

Google Developer Groups 谷歌开发者社区,是谷歌开发者部门发起的全球项目,面向对 Google 和开源技术感兴趣的人群而存在的公益性开发者社区。GDG Shanghai 创立于 2009 年,是全球 GDG 社区中最活跃和知名的技术社区之一,每年举办 30 – 50 场大大小小的科技活动,每年影响十几万以上海为中心辐射长三角地带的开发者及科技从业人员。
社区中的各位组织者均是来自各个行业有着本职工作的互联网从业者,我们需要更多新鲜血液的加入!如果你对谷歌技术感兴趣,业余时间可调配,认同社区的价值观,愿意为社区做出贡献,欢迎加入我们成为社区志愿者!
志愿者加入方式:关注上海 GDG 公众号:GDG_Shanghai,回复:志愿者。
社区成员加入方式:请发邮件至以下邮箱
gdg-shanghai+subscribe@googlegroups.com