zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Docker入门使用指南

2023-02-18 16:39:31 时间

内容摘录自开课吧学习资料

1. 入门使用:

必会命令

拉取镜像: docker pull nginx

查看镜像: docker images/docker images nginx

启动镜像(将www目录和nginx/html进行映射):

  1. 前台启动: docker run -p 8000:80 -v $PWD/www:/usr/share/nginx/html nginx
  2. 后台启动: 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 &amp; 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"]
  1. 编译镜像: docker build -t node-koa .
  2. 启动: docker run -d -p 3000:3000 node-koa 案例3(pm2):
  3. 拷贝案例2: cp -R node-koa pm2-koa
  4. 编写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
# 通过 &amp;&amp; \ 连接两条命令
RUN npm config set registry https://registry.npm.taobao.org/ &amp;&amp; \
 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