【Docker】常见操作
·
Docker 容器化部署
👉 回答思路:从开发 → 打包 → 部署,结合实际项目。
① 使用场景
- 用 Docker 来解决环境一致性问题,比如前端 Node.js 构建环境、后端 Java/SpringBoot 服务,甚至 MySQL、Redis。
- 本地开发时用
docker-compose来快速启动多个服务。
② 容器化部署步骤
-
编写 Dockerfile
# 以 Node.js 项目为例 FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install --production COPY . . CMD ["npm", "start"] -
构建镜像
docker build -t myapp:v1 . -
运行容器
docker run -d -p 3000:3000 myapp:v1 -
线上部署
- 单机部署:直接 run 容器。
- 多服务:用
docker-compose管理。 - 集群部署:Kubernetes / Docker Swarm。
🔑 Docker 常见用法总结
1. 镜像管理
-
拉取镜像:
docker pull nginx:latest -
查看本地镜像:
docker images -
删除镜像:
docker rmi nginx
2. 容器管理
-
运行容器:
docker run -d --name my-nginx -p 8080:80 nginx启动一个 nginx 容器,映射本地 8080 → 容器 80。
-
查看容器:
docker ps # 运行中的容器 docker ps -a # 包括已退出的 -
停止 / 启动容器:
docker stop my-nginx docker start my-nginx -
删除容器:
docker rm my-nginx
3. 进入容器 & 调试
-
进入容器终端:
docker exec -it my-nginx /bin/bash -
查看容器日志:
docker logs -f my-nginx
4. 数据卷(Volume)
-
容器和宿主机之间共享数据:
docker run -d -v /host/data:/container/data my-app
5. 网络管理
-
查看网络:
docker network ls -
创建网络并连接容器:
docker network create my-net docker run -d --name db --network my-net mysql docker run -d --name app --network my-net my-app这样
app容器里可以用db:3306访问数据库。
6. 自定义镜像(Dockerfile)
-
写一个
Dockerfile:FROM node:18 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["npm", "start"] -
构建镜像:
docker build -t my-node-app .
7. Docker Compose
-
编排多个容器(如前端 + 后端 + 数据库):
version: '3' services: web: build: . ports: - "3000:3000" db: image: mysql environment: MYSQL_ROOT_PASSWORD: root -
启动:
docker-compose up -d
✅ 总结
我常用 Docker 做几件事:
- 镜像管理,比如
docker pull拉取镜像,docker build自定义镜像;- 容器管理,比如
docker run启动,docker ps查看,docker logs调试;- 数据持久化会用 Volume 映射宿主机目录;
- 多容器场景下会用 Docker Compose 做服务编排。
实际开发中,比如部署前端项目,我会写一个 Dockerfile,把应用打包进镜像,然后docker run -p映射端口,就能快速跑起来。
更多推荐



所有评论(0)