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