简单描述docker的使用
# 是什么
Docker 是一个由 go 语言编写的,开源的应用容器引擎。
# 怎么用
- 创建koa-server
# 新建文件夹
mkdir koa-server
# 进入
cd koa-server
# 项目初始化,生成package.json
npm init -y
# 安装koa
npm i koa
# 新建app.js
touch app.js
# 在app.js中写入如下代码
const Koa=require('koa')
const app=new Koa()
app.use(ctx=>{
ctx.body='hello koa'
})
app.listen(3000,()=>{
console.log('run server__')
})
- 编写Dockfile文件,根据其描述构建镜像
# 新建Dockerfile文件
touch Dockerfile
# 写入如下内容
FROM node:12.20.1
COPY . /app
WORKDIR /app
RUN npm i
EXPOSE 3000
命令解释
- 指定基础镜像为 node,冒号表示标签,此处指的是 12.20.1 版本的 node
- 将当前目录下的所有(非.dockerignore 排除)文件,都拷贝进入镜像文件的/app 目录。
- 指定工作路径为/app。
- 安装依赖(安装后所有的依赖,都将打包进入镜像文件)。
- 将容器 3000 端口暴露出来, 允许外部连接这个端口。
- 编写.dockerignore 排除文件
# 新建.dockerignore排除文件
touch .dockerignore
# 写入如下内容
node_modules
- 构建镜像 koa-server 根目录下执行如下命令构建镜像:
docker image build -t koa-server-image .
- -t 用于指定构建的镜像名,后面可用冒号指定标签名,默认 latest
- 最后的那个点表示 Dockerfile 文件所在的路径,因为是进入 koa-server 后执行的构建命令,所以是当前目录,可以看成是./
- 同镜像同标签或不指定标签多次构建会是同一个
- 镜像构建完成后可用 docker image ls 命令查看镜像列表
- 启动容器
镜像,容器,应用程序三者关系是:
镜像是容器启动的先决条件,容器中运行着真正的应用程序。
docker container run -p 3000:3000 -it koa-server-image /bin/bash
- -p 参数就是用于指定端口映射,格式为主机端口:容器端口
- -it 参数一般配合使用,生成一个交互终端
- /bin/bash 相当于在-it 参数返回的交互终端中执行/bin/bash
- 因为是 node 环境,不加/bin/bash 效果就相当于终端输入 node 后回车的效果
- 效果验证 浏览器访问地址http://localhost:3000/,页面显示 hello koa
# 容器迁移
# 原理
# FAQ
上次更新: 2021/12/19, 18:05:42