⭐前言
鉴于个人环境不同,网上也有很多 docker 教程,我能力很弱,想了想还是不写 docker 具体的使用方法,意义不是很大。
在这里记录下在学习和使用docker的途中,可能要注意的地方。
⭐1. 什么是docker ?
网上一搜 "docker是啥?",各种花里胡哨的名词就来了,对于我刚学来说,挺模糊的一个概念,不知道在说啥。 其实我也不是很关心他在说什么,大概就是那么一个迷迷糊糊的东西。简单来说, docker 是一个软件。
既然是软件,就谈拿来干什么, 主要是打包程序,隔离程序,有人把它比成集装箱
⭐2. docker的安装
docker 官方文档各种操作系统安装 docker 的方法如下链接(docs.docker.com/install/)
对于Mac,Windows系统来说安装很简单,下载安装包,双击安装, 以 Windows 为例,官方安装方法如下链接(docs.docker.com/docker-for-…)。注意:
- Windows 和 Mac 系统需要先登录账号才能下载,注册一下,很简单的
- docker软件对于系统版本要求Windows 10,MacOS 10.13版本或以上,如果你系统版本没达标,官方文档也给出了一些解决方法,但官方建议你升级你的系统版本。
对于 Linux 系统安装,以 Ubuntu 为例,官方安装方法如下链接(docs.docker.com/install/lin…), 也挺简单,几行命令粘贴复制就行。注意:
- 建议把这几行命令写成一个脚本,方便以后使用
总的来说,官方文档写的很详细,但是官方链接下载软件可能会有一点慢,万一出现下载失败的情况, 建议上各大镜像网站(中科大,阿里云,网易)看看。
⭐3. docker的使用前--埋下 "镜像" 和 "容器"的种子
使用之前要先知道 docker 中基本的两个概念:"容器" 和 "镜像"。
这里在提一句,对于这种概念性的名词,有各种高大上的术语来解释它,反正我看了也比较模糊,我在这里就大白话说说,不准确没关系,认识总是由浅入深,由简单到复杂。我现在是这个看法,只是为了帮助我更好的学习使用, 过一段时间也许我看法就变了,对吧。 因为你的疑惑越多,你就越迷糊;要的越多,就怕吃不下呀。当你觉得很复杂的时候,就要把它简单化;当你觉得熟练了简单了,你就要把它复杂一点,考虑周全一点。
镜像就是一个只读的文件(在 Linux 上不是有很著名的思想吗? "一切都是文件")
容器就是由镜像生成的 docker 实例
做一个比喻,拿建房子来说,镜像相当于设计模板,容器相当于由设计模板建出来的房子。一个设计模板可以建造很多个房子。
hub.docker.com/ 是 docker 官方用来存放所有镜像的仓库。
⭐4. docker的使用--(官方推举使用方法,使用 Dockerfile 方案)
docker 的使用是由一系列命令来操作的,官方命令使用说明手册链接 docs.docker.com/engine/refe…
由于 docker 容器的运行是由镜像生成的,我们拿一个例子来说明,现在有一个简单web项目叫 "hello world",我们要把它放在docker容器里运行起来。
方案一:
- 先运行一个由官方 Linux 基础镜像生成的容器,如 "ubuntu"(docker run),
- 在容器里面安装项目所必须的软件,如这个项目是'python'语言写的,你要安装 python吧(docker exec)。
- 把项目拷贝进容器的一个目录里面,然后运行这个文件(docker cp)。
这是基础的方法,我们没有自定义一个镜像,没有用到 Dockerfile 这个文件,而是在官方仓库下载了一个 Ubuntu 系统镜像,然后安装软件,拷贝项目,运行项目。
这个方案每运行一个容器项目,就需要手敲多条命令,很麻烦。于是我们改进一下,把命令写成脚本,那样我们就可以使用脚本来完成。
上面的从手敲命令,改进到脚本方式已经很接近官方的 Dockerfile 方案来使用了,但脚本的方式还是不够好,一是在时间消耗上,每次新建容器时,脚本运行的时候都要下载安装一遍必备软件,而 Dockerfile 的方案使用了缓存,时间消耗少。二是 Dockerfile 是构建一个自定义的镜像(构建镜像时就把整个项目的运行环境搭建好了),而脚本的方式是在容器上安装修改,环境配置是在这个时候进行的。
方案二(Dockerfile 方案):
- 创建一个名字叫 "Dockerfile" 的文件,根据官方 Dockerfile 文件规则编写配置 (配置文件阶段)
- 根据 "Dockerfile" 文件创建一个自定义镜像(docker build)
- 由此自定义镜像运行容器(docker run)
我介绍方案一的原因就是想让看到我文章的朋友更加理解 Dockerfile 文件,当没有 Dockerfile 文件的时候,我们该怎么办。
Dockerfile 文件 官方使用说明文档 docs.docker.com/search/?q=d…
换源
不管是 docker 还是编程其他的时候, 前端 需要换 npm 淘宝源, python 需要换 pip 源。 服务器需要换 apt 源。 是因为这些包管理器的默认下载地址基本都是在国外,国内访问很慢,有时候还会失败。 所以换一个下载地址而已。
- 下载官方仓库里面的镜像时,可能会很慢,请换到国内镜像地址
- 操作系统 源, 语言 源 ,可能下载都会很慢, 请换到国内镜像地址 这里只是提一句,请上各大镜像站(阿里云,中科大...),官方文档简单方便。 例子: mirrors.ustc.edu.cn/help/docker… 此链接为替换 docker 官方仓库源使用说明。
注意:
- 不建议认真通读官方文档,不建议只看官方文档,请按需观看。
- 官方文档为英文,我是下了个英文翻译的插件看的,请不要因此就不上官方文档了
- 这一段 Dockerfile 方案的介绍,初学的小伙伴可以试试不用 Dockerfile 文件运行一个 docker 项目。
- 我在想我要不要写一份上传上来,感觉有点纸上谈兵。
- 不想抄一遍 docker 的优点,功能啥的,所以文章里也没写,请自行体会,有优点,必有弱点,它解决一些问题的时候又带来了哪些问题,当然我不知道
- 接下来会讨论 docker 的 volume 和 compose
- 第一次写文章,写的不好,就写了一点点就这么长了,下一篇文章接着写,写文章是希望能认识一些朋友。