内容摘录自开课吧学习资料
必会命令
拉取镜像: 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>
创建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
创建目录: mkdir node-koa
初始化: cd node-koa & npm i koa -S
创建koa服务: ```basic const Koa = require("koa"); const app = new Koa(); app.use((ctx) => { ctx.body = "Hello NodeJs"; }); app.listen(3000, () => { console.log("app started at 3000"); });
4. 编写Dockerfile
```dockerfile
FROM node:10-alpine
# 拷贝当前目录到容器/app目录
ADD . /app/
# 进入工作目录
WORKDIR /app
# docker build 过程中运行
RUN npm install
# 暴露端口
EXPOSE 3000
# 容器运行时执行
CMD ["node","app.js"]
docker build -t node-koa .
docker run -d -p 3000:3000 node-koa
案例3(pm2):
cp -R node-koa pm2-koa
编写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
# pm2在docker中的使用命令为pm2-docker
CMD ["pm2-runtime","start","process.yml"]
编译镜像: docker build -t pm2-koa .
启动: docker run -d -p 3000:3000 pm2-koa
负责实现对Docker容器集群的快速编排
编写配置文件: docker-compose.yml
# docker-compose.yml mongo + mongo-express
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