
内容摘录自开课吧学习资料
1. 入门使用:
必会命令
- 拉取镜像:
docker pull nginx
- 查看镜像:
docker images/docker images nginx
- 启动镜像(将www目录和nginx/html进行映射):
- 前台启动:
docker run -p 8000:80 -v $PWD/www:/usr/share/nginx/html nginx
- 后台启动:
docker run -d -p 8000:80 -v $PWD/www:/usr/share/nginx/html nginx
- 容器存在:
docker start <容器ID>
- 停止容器:
docker stop <容器ID>
- 查看运行进程:
docker ps
- 进入容器:
docker exec -it <容器ID> /bin/bash
- 删除容器:
docker rm <容器ID>
2. 定制镜像
案例1(Nginx):
- 创建Dockerfile文件
| |
| FROM nginx:latest |
| RUN echo '<h1>Hello Docker</h1>' > /usr/share/nginx/html/index.html |
- 编译
| //docker build -t <定制镜像名> 当前目录 |
| docker build -t nginx:ospoon . |
- 启动
| docker run -p 8000:80 nginx:ospoon |
案例2(Node):
- 创建目录:
mkdir node-koa
- 初始化:
cd node-koa & npm i koa -S
- 创建koa服务:
| const Koa = require("koa"); |
| const app = new Koa(); |
| app.use((ctx) => { |
| ctx.body = "Hello NodeJs"; |
| }); |
| app.listen(3000, () => { |
| console.log("app started at 3000"); |
| }); |
| |
- 编写Dockerfile
| FROM node:10-alpine |
| |
| ADD . /app/ |
| |
| WORKDIR /app |
| |
| RUN npm install |
| |
| EXPOSE 3000 |
| |
| CMD ["node","app.js"] |
- 编译镜像:
docker build -t node-koa .
- 启动:
docker run -d -p 3000:3000 node-koa
案例3(pm2):
- 拷贝案例2:
cp -R node-koa pm2-koa
- 编写pm2相关的yml文件
| apps: |
| - script: app.js |
| |
| instances: 2 |
| |
| watch: true |
| env: |
| |
| NODE_ENV: production |
- 编写Dockerfile
| FROM keymetrics/pm2:latest-alpine |
| |
| WORKDIR /usr/src/app |
| ADD . /usr/src/app |
| |
| RUN npm config set registry https://registry.npm.taobao.org/ && \ |
| npm i |
| |
| EXPOSE 3000 |
| |
| CMD ["pm2-runtime","start","process.yml"] |
- 编译镜像:
docker build -t pm2-koa .
- 启动:
docker run -d -p 3000:3000 pm2-koa
3. docker-compose
负责实现对Docker容器集群的快速编排
案例:
- 编写配置文件: docker-compose.yml
| |
| version: '3.1' |
| services: |
| mongo: |
| image: mongo |
| restart: always |
| ports: |
| - 27017:27017 |
| mongo-express: |
| image: mongo-express |
| restart: always |
| ports: |
| - 8081:8081 |
- 运行:
docker-compose up
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)