Docker 是一个容器化平台,可以让你打包、分发和运行应用程序。它的核心思想是通过容器技术,让应用程序在任何环境下都能以一致的方式运行。
通俗易懂的理解
-
快餐盒的比喻:
- 假设你做了一顿饭(开发了一个应用程序),而朋友在另一个城市想吃到完全一样的饭。
- 传统方式:告诉朋友所需的食材和步骤(在新环境安装依赖和配置)。
- Docker 的方式:你把饭装进一个快餐盒(容器),朋友收到后直接吃(运行),不需要准备任何材料。
-
开发环境的统一:
- 在你的电脑上运行的代码,可能在别人的电脑或服务器上跑不起来,因为环境不同。
- Docker 打包了代码和环境配置,确保无论在哪里运行,结果都是一样的。
Docker 的主要使用场景
- 开发环境统一: 开发、测试和生产环境保持一致。
- 部署简单: 应用程序以容器形式打包,一键部署到任何支持 Docker 的平台。
- 快速启动: 容器启动比虚拟机快得多。
- 资源隔离: 每个容器都是独立的,互不干扰。
使用 Vue 项目部署来举例
假设我们有一个 Vue 项目,想用 Docker 部署到服务器上。
1. 安装 Docker
- Linux(以 Ubuntu 为例):
sudo apt update sudo apt install docker.io -y sudo systemctl start docker sudo systemctl enable docker
- Windows/Mac:
下载 Docker Desktop,安装并启动。
验证安装:
docker --version
2. 准备 Vue 项目
- 确保 Vue 项目已经构建完成(生成静态文件)。
npm run build
- 构建后会生成一个
dist
目录,里面是要部署的静态文件。
3. 创建 Dockerfile
在项目根目录创建一个名为 Dockerfile
的文件,内容如下:
# 使用官方 Nginx 镜像作为基础镜像
FROM nginx:stable-alpine
# 把本地的 dist 文件夹复制到 Nginx 的静态文件目录
COPY dist/ /usr/share/nginx/html
# 暴露端口号 80
EXPOSE 80
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]
4. 构建 Docker 镜像
在项目根目录运行以下命令:
docker build -t vue-app .
说明:
-t vue-app
是给镜像取名字。.
表示当前目录。
5. 启动容器
使用刚创建的镜像运行容器:
docker run -d -p 8080:80 --name vue-container vue-app
说明:
-d
:后台运行。-p 8080:80
:将本地 8080 端口映射到容器的 80 端口。--name vue-container
:给容器取名。
打开浏览器访问 http://localhost:8080,你应该能看到 Vue 应用。
6. 停止和删除容器
停止运行的容器:
docker stop vue-container
删除容器:
docker rm vue-container
Docker 使用的完整流程总结
- 安装 Docker
- 准备应用程序代码(比如构建 Vue 项目)。
- 创建 Dockerfile(定义如何构建容器镜像)。
- 构建镜像(把应用打包成 Docker 镜像)。
- 运行容器(启动应用)。
- 管理容器(停止、删除、更新)。
通过 Docker 部署 Vue 项目,你可以快速实现“打包一次,到处运行”的目标,大大简化了部署流程,并提升了开发效率。