Docker 入门:从本地能跑,到处处都能跑
很多新手第一次接触 Docker,都会先问一个问题:它和虚拟机有什么不同?一句话说清楚,虚拟机是把一整台电脑搬进电脑里,连操作系统都要再装一套;而 Docker 是把应用和它需要的运行环境打成一个轻便的箱子,箱子之间共用宿主机的系统内核,所以启动更快、占用更少,也更容易搬运。
理解 Docker,先记住三个词。镜像是一个只读的模板,里面装着操作系统基础文件、运行环境、代码和依赖;容器是镜像跑起来的实例,就像用同一张图纸盖出的每一间房子,可以启动、停止和删除;仓库则是存放镜像的地方,别人做好的镜像可以拉下来直接用,自己做好的也可以推上去分享。这三个概念理清了,后面很多命令就不再神秘。
第一次动手,建议从最简单的验证开始。安装好 Docker 之后,在终端执行 docker run hello-world,如果看到欢迎信息,就说明本机已经可以正常拉取镜像并运行容器。这个小例子不做任何业务,却把下载、创建、启动和输出这条链路完整走了一遍。接下来可以用 docker ps 查看正在运行的容器,用 docker ps -a 查看所有容器,用 docker stop 和 docker rm 分别停止和删除容器,先把手感练熟,再去碰复杂项目。
只会用别人的镜像还不够,真正的入门是自己做一个镜像。做法并不复杂:写一个名为 Dockerfile 的文本文件,第一行写 FROM,指定基础镜像;然后用 COPY 把代码拷进去,用 RUN 安装依赖,最后用 CMD 写明容器启动时要执行的命令。写好之后执行 docker build -t my-app:1.0 .,再用 docker run -p 8080:8080 my-app:1.0 把它跑起来,浏览器能访问,就说明你的第一份镜像成功了。
新手最容易踩的坑有三类。第一是把数据直接写进容器,容器删了数据就没了,重要数据要用数据卷挂载出来。第二是端口没映射,服务在容器里跑着,本机却打不开,先检查 -p 参数。第三是镜像越做越大,尽量选小的基础镜像,少装不必要的工具。记住这几点,你就已经跨过了 Docker 的入门门槛,接下来可以再学多容器编排和云上部署。
- 点赞
- 收藏
- 关注作者
评论(0)