什么是 Docker?
Docker 是一种容器化技术,可以将应用和它的依赖打包到一个轻量级容器中运行,解决「在我电脑上能跑」的问题。
安装 Docker
# 一键安装脚本
curl -fsSL https://get.docker.com | sh
# 将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
newgrp docker
# 验证安装
docker --version
docker run hello-world
基本概念
- 镜像(Image):只读的应用模板,如 nginx、mysql、node
- 容器(Container):镜像的运行实例
- Dockerfile:定义如何构建镜像的脚本
- Docker Compose:管理多容器应用的工具
常用命令
# 拉取镜像
docker pull nginx
# 启动容器
docker run -d --name my-nginx -p 80:80 nginx
# 查看运行中的容器
docker ps
# 查看日志
docker logs my-nginx
# 进入容器
docker exec -it my-nginx bash
# 停止/删除
docker stop my-nginx
docker rm my-nginx
Docker Compose 示例
# docker-compose.yml
version: "3.8"
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: secret123
MYSQL_DATABASE: myapp
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
# 启动
docker compose up -d
# 停止
docker compose down
编写 Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
docker build -t my-app .
docker run -d -p 3000:3000 my-app