Docker入门使用指南
2023-02-18 16:39:31 时间
内容摘录自开课吧学习资料
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服务: ```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): - 拷贝案例2:
cp -R node-koa pm2-koa
- 编写pm2相关的yml文件 ```yaml 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
# pm2在docker中的使用命令为pm2-docker
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
# 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
相关文章
- 个人笔记(路由、网络相关)
- 个人笔记(vue篇)
- 怎么去水印不伤原图?这个去水印方法值得收藏!
- 羊了个羊,通关秘籍!
- 实用 | 盘点抓包修改响应结果的 2 种方式!
- 小技巧 | Chrome 插件如何完成剪切板的操作!
- DDOS攻击讲堂
- 思科交换机简单配置
- 实战 | 如何利用 Scrapy 编写一个完整的爬虫!
- 超简单就可做一款三功能的LED车灯
- 实战 | 教你快速爬取热门股票,辅助量化交易!
- 行业趋势|光伏行业SCM供应链数字化管理优势、价值
- 破除上下游梗阻,如何为能源化工行业开出“新良方”?
- 软件分享 | 第一期 Markdown神器Typora安装和破解教程
- jira-dev-tool插件安装失败的解决方法
- 软件分享 | 第二期 截图神器snipaste安装和使用教程
- 基于Hexo搭建静态博客
- 软件分享 | 第三期 搜索神器listary安装和使用
- 发送HTML模板邮件
- 使用3-hexo主题时无法正常渲染html代码