Docker 入门指南:容器化部署基础

Docker是什么?

Docker是一种容器化技术,让你的应用和依赖打包成一个镜像,在任何地方都能运行。

安装Docker

# Ubuntu/Debian
curl -fsSL https://get.docker.com | sh

# 启动服务
sudo systemctl start docker
sudo systemctl enable docker

基本命令

镜像操作

# 查看本地镜像
docker images

# 拉取镜像
docker pull nginx
docker pull node:18-alpine
docker pull python:3.12

# 删除镜像
docker rmi nginx

容器操作

# 运行容器
docker run nginx
docker run -d nginx           # 后台运行
docker run -p 8080:80 nginx   # 端口映射
docker run -v /host:/container nginx  # 数据挂载
docker run --name mynginx nginx       # 指定名字

# 查看容器
docker ps          # 运行中的
docker ps -a       # 所有容器

# 进入容器
docker exec -it container_id bash

# 停止/启动/删除
docker stop container_id
docker start container_id
docker rm container_id

# 查看日志
docker logs container_id
docker logs -f container_id  # 实时日志

Dockerfile

# 基础镜像
FROM node:18-alpine

# 工作目录
WORKDIR /app

# 复制依赖文件
COPY package*.json ./

# 安装依赖
RUN npm install --production

# 复制源代码
COPY . .

# 暴露端口
EXPOSE 3000

# 启动命令
CMD ["npm", "start"]

构建和运行

# 构建镜像
docker build -t myapp .

# 运行
docker run -d -p 3000:3000 --name myapp myapp

docker-compose

version: '3'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:
# 启动
docker-compose up -d

# 停止
docker-compose down

# 查看状态
docker-compose ps

总结

Docker让部署变得标准化和可移植。同一个镜像在开发机、测试机、生产机上跑的是完全一样的环境。