我渐渐由一个 Cpper, 转变成一个 Gopher。无奈这个世界节奏越来越快,节约时间提高效率势在必行。
简述
别人都已经开始出轨了,我们有的人还没有上轨;可悲。
别误会,Docker 生态圈里出了个 Kubernetes 也不是啥大事儿;意料之中。
- 前几天的一篇文章中 《略懂: Docker 镜像与容器》 说了 Dokcer是一门值得掌握的技术
- 最近新买了 mbp 13.3 顶配,想把以后开发环境整合到一起
- 作为 gopher, 不熟悉 docker 不是很可笑么?
- docker 还在发展,此时不上船,更待何时?
本系列作为深耕的第一个系列,大概会写10篇左右;以此玩透 docker (顺便玩 golang)。
由于 linux 对于 docker 的支持最好,所以这里我用的是 aliyun 的 vps, Ubuntu 17。
实践
Ubuntu平台
理论以前已经说过了一部分,没必要重复,等玩熟悉了再去研究其内部真实构成。(哪些层,哪些只读,哪些可写等等)
本篇只讲述 Ubuntu, Mac环境下的安装问题。
实验环境: (在 实现环境,即 Ubuntu 上玩透彻了,再搬到 macOs 上)
主要分为 CE 和 EE,即 社区版和企业版。社区办足够了:
Container engine and built in orchestration, networking, security
具体可以参考这篇文章 Get Docker CE for Ubuntu,下面不废话,直接上代码:
先设置 docker 仓库:
1 | ## |
如果觉得这个源太慢,可以借助国内的镜像:
1 | $ sudo add-apt-repository \ |
下面安装 docker
引擎:
1 | # 先更新一下包 |
好了全部卸载了,重新安装一遍。(仓库不用重新添加了)
测试一下:
可以看到先是下载了一个 hello-world 镜像,然后在容器里运行它,打印了一些信息,最后退出了
额外的信息:
- 旧版本的 docker 叫做:
docker-engine
或者docker.io
,如果以前有安装过,最好先卸载 - The Docker CE package is now called
docker-ce
- 完全卸载 :
sudo apt-get purge docker-ce
,sudo rm -rf /var/lib/docker
- 可以安装每月更新的分支
edge
或者test
- 非 root 用户也可以操作&管理 docker 用户,需要设置 docker 组,可以参考下一篇文章
官方为了简化 ubuntu 的安装过程,也可以不使用 apt 安装引擎,而直接使用脚本:
1 | $ curl -fsSL get.docker.com -o get-docker.sh |
macOs 平台
在 Windows 和 Mac 中,我们可以通过 boot2docker 来运行 docker
有些人会用到 Docker Toolbox 可能是因为他们的 macOS 版本过低。
这里的安装可以使用 brew cask install docker
,但是还是推荐你使用安装包安装。(拖拽安装,然后运行,在顶部的菜单栏可以找到它)
这里的版本 Win/macOS 默认安装 docker-ce 的同时也安装 docker-compose 和 docker-machine。
这里的 docker info 以后再慢慢研究吧。(这里有个Docker Root Dir: /var/lib/docker
)
此外还可以装一个 Kitematic 代替一切手工 docker 命令: (个人觉得没有必要,所以没有安装; 习惯命令行)
偏好设置里面也有一些可以设置代理,调整磁盘, cpus/mems 的选项。
来跑个 nginx 试试。(docker run 发现本地不存在某个库的话会自动下载下来)
--p
参数指定了本机的80端口映射到容器的80端口, --name
指定容器运行后的名字,相当于进程的名字。
最后不指定 nginx 的版本,默认就是最新版本。
配置镜像: docker 配置
然后停止容器,删除镜像吧:
参考
下面列举我学习过程所看过的,国内的有关 docker 的所有资料: (整个系列都围绕这些展开)
(当然他们中水平有高有低,值得推荐的书,章节,文章,我就写出来;觉得写的不好的,我就不说了).
- 《Docker — 从入门到实践》 看完这本再看其他的
- 《每天5分钟玩转Docker容器技术》
- 《阮一峰的docker教程》
- 《阮一峰的 docker 微服务教程》
- 《官方文档》
- 《Docker入门实战》 进阶补充(这本书适当的深入了一下)