Docker 入门教程
本文是官方Getting Starts教程的阅读笔记,包含对步骤、命令的记录和解释。
教程分一系列课程,包括有:
- 安装 Docker
- 运行容器和创建自定义容器
- 创建高效可复用的镜像,并推送到 Docker Hub 上
Get Docker Desktop
Docker Desktop 是简单易用的 Docker 工具软件,使用 Docker Desktop 可以快速上手,避免因为不熟悉命令而卡壳(对自己说:还在入门别老想着成才)。
下载很慢,安装很快,走出第一步比较顺利,运行 welcome-to-docker
镜像,其中命令行为:
docker run -d -p 8080:80 docker/welcome-to-docker
命令执行之后会下载镜像并创建运行中的容器。
Develop with containers
使用容器进行开发(疑问:写代码也在容器中?)
在这一节中,我们下载运行了一个 todo list
的 App。
App 的容器组成:
- 前端:React dev server (Vite) 的 Node 容器
- 后端:Node api
- 数据库:MySQL
- phpMyAdmin:数据库管理工具
- Traefik proxy:应用代理,实现一个端口对外服务,按规则转发请求到后端,前端等。
操作步骤:
- git clone 或者下载压缩包解压;
cd getting-started-todo-app
docker compose watch
watch步骤可以实现主机和容器文件自动同步,浏览器自动刷新
制作和发布镜像
What is an image/Dockerfile?
Without going too deep yet, think of a container image as a single package that contains everything needed to run a process. In this case, it will contain a Node environment, the backend code, and the compiled React code.
Any machine that runs a container using the image, will then be able to run the application as it was built without needing anything else pre-installed on the machine.
A Dockerfile is a text-based script that provides the instruction set on how to build the image. For this quick start, the repository already contains the Dockerfile.
命令
docker build -t DOCKER_USERNAME/getting-started-todo-app .
docker push DOCKER_USERNAME/getting-started-todo-app
制作和发布镜像过程很顺利,对于新手比较友好。自建镜像运行后使用 sqlite 数据库、监听3000端口,并能正常访问(数据库和代理配置先不看了)。
小结
本文说明了新手如何使用容器来开发应用的工作流程,可以作为入门练手教程。然而对于多容器应用、网络、卷都未涉及,打算之后阅读 Docker 概念篇时分别做一些记录和阐述。
概念篇(只完成一篇):