最近刚huan工作,因为之前对于 Docker 的停留在使用基础阶段,并没有完整的搭建一整套环境,所以最近开始研究Docker到底该怎么去玩,才有了今天这个教程,记录下来,也给正在docker的坑中的朋友一点提示吧。
主要做的一件事:搭建一个web的环境
docker 中最重要的2个点:
1,dockerfile(制作镜像)
2,Docker Compose(多容器管理)
如果有更多兴趣, 也可以进阶 K8S ,一个不错的管理工具
docker教程基础:很多,百度一大把,我学习时看过的教程,感谢提供者:
当然, 少不了 GitHub
官网有一些镜像的创建文档,也就是 dockerfile 文件,可以看看 构建镜像 过程
废话不多说了,开始构建我们的第一个基础镜像
资源: docker-centos 下载地址
说明:
这个 docker 版本的 CentOS 7 系统,是docker官网提供的,包存储位置实在 GitHub 中,CentOS 官网也提供有体积相对够小的包。包的大小,决定构建的镜像内初始功能的多少,以及镜像文件的体积,当然,镜像的体积,此处只是其中的原因之一,另一个原因是构建步骤的问题,每个构建过程,都会增加镜像的体积,所以在系统包的选择上,按照自己的需求
注意:
如果docker的教程你没看过的话,那么你需要注意 dockerfile 文件的编码,以及类型,dockerfile 文件是没有后缀的,编码格式
我的第一个镜像(基础镜像),是centos 7系统
好了,直接上dockerfile 文件内容,这个也是 官网提供出来的
From scratch
MAINTAINER xxxxx xxxx@xx.xx
ADD centos-7-docker.tar.xz /
CMD ["/bin/bash"]
解释:
From 是用来引用父级镜像的,原始镜像为:scratch,docker的镜像库结构为层级形式的结构,可以理解为树形图
MAINTAINER 用来署名用的,标识人
ADD centos-7-docker.tar.xz / 这句字面意思, ADD 这个文件到 / 目录下,那么问题是,没有解压过程,因为在
docker中 ADD 命令包括2个功能 ,1:增加文件,2,解压文件,所以过程中就不再需要解压了
CMD ["/bin/bash"] 这句话是用来执行命令的,比如我要做的某件事,这里要注意,CMD是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD,所以使用时注意
最后的编译: docker build --rm -t centos:7 .
如果编译好了,就可以使用 docker images 命令查看镜像库中是否存在 centos 7 的镜像了。
创建 Docker 容器:docker run -d --name=centos centos:7
-d: 后台运行
--name: 容器名称
centos:7 镜像文件:版本号 如果在构建时没有标识版本号,那么会默认为 latest
对于dockerfile 中的指令, 具体再上面的教程基础中去查看吧
再来几个网址
官方centos 7 dockerfile 地址(包括系统包文件):centos7
可以看我的码云:去码云看看
第一章,到此结束