当前位置:   article > 正文

Docker 制作自己的镜像

Docker 制作自己的镜像

目录

为自己的 Web 项目构建镜像

编写 Dockerfile

Build 为镜像(安装包)和运行

更多相关命令


示例项目代码:

  1. // 配置端口号
  2. const PORT = 8089
  3. // 1.安装 npm install --save koa-router
  4. var Koa = require('koa');
  5. // 2.引入路由并实例化
  6. var Router = require('koa-router');
  7. var app = new Koa();
  8. var router = new Router();
  9. // 路由路径前缀设置
  10. router.prefix('/api')
  11. // 3.配置路由
  12. router.get('/', async (ctx) => { // 路径: /api/get
  13. // 返回数据给前端
  14. ctx.body = "index page";
  15. });
  16. router.all('/hello/:name', ctx => {
  17. let name = ctx.params.name
  18. ctx.body = `hello ${name ? name : 'world'}`
  19. })
  20. // 4.启动路由(来自于官方文档);
  21. // router.allowedMethods()可以配置也可以不配置。
  22. // 如果之前的没有设置响应头,配置此选项以后可以自动设置响应头。
  23. app.use(router.routes()).use(router.allowedMethods());
  24. // 监听端口
  25. app.listen(PORT, () => {
  26. console.log(`本地服务器启动成功,http://localhost:${PORT}`)
  27. })


这是一个 Nodejs + Koa2 写的 Web 项目,提供了简单的两个演示页面。
软件依赖:nodejs
项目依赖库:koa、koa-router

  1. {
  2. "name": "my_server",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "index.js",
  6. "scripts": {
  7. "test": "echo \"Error: no test specified\" && exit 1"
  8. },
  9. "keywords": [],
  10. "author": "",
  11. "license": "ISC",
  12. "dependencies": {
  13. "express": "^4.19.2",
  14. "koa": "^2.15.3",
  15. "koa-router": "^12.0.1"
  16. }
  17. }
  1. # 这段代码是一个 Dockerfile 文件,用于构建一个基于 Node.js 11 版本的 Docker 镜像。
  2. # FROM node:11:指定基础镜像为 Node.js 11 版本。
  3. FROM node:11
  4. # MAINTAINER easydoc.net:设置镜像的维护者信息为 easydoc.net。
  5. MAINTAINER easydoc.net
  6. # 将当前目录下的所有文件和文件夹复制到镜像中的 /app 目录下。
  7. ADD . /app
  8. # 设置容器启动后的默认工作目录为 /app。
  9. WORKDIR /app
  10. # 运行命令,安装依赖
  11. # RUN 命令可以有多个,但是可以用 && 连接多个命令来减少层级。
  12. # 例如 RUN npm install && cd /app && mkdir logs
  13. RUN npm install
  14. # CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。
  15. # 如果还需要运行其他命令可以用 && 连接,也可以写成一个shell脚本去执行。
  16. # 例如 CMD cd /app && ./start.sh
  17. CMD node server.js

Dockerfile文档

实用技巧:
如果你写 Dockerfile 时经常遇到一些运行错误,依赖错误等,你可以直接运行一个依赖的底,然后进入终端进行配置环境,成功后再把做过的步骤命令写道 Dockerfile 文件中,这样编写调试会快很多。
例如上面的底是node:11,我们可以运行docker run -it -d node:11 bash,跑起来后进入容器终端配置依赖的软件,然后尝试跑起来自己的软件,最后把所有做过的步骤写入到 Dockerfile 就好了。
掌握好这个技巧,你的 Dockerfile 文件编写起来就非常的得心应手了。
 

编译 docker build -t test:v1 .

-t 设置镜像名字和版本号
命令参考:docker build | Docker Docs

运行 docker run -p 8080:8080 --name test-hello test:v1

-p 映射容器内端口到宿主机
--name 容器名字
-d 后台运行
命令参考文档:Running containers | Docker Docs

docker ps 查看当前运行中的容器
docker images 查看镜像列表
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
docker rmi image-id 删除指定 id 的镜像
docker volume ls 查看 volume 列表
docker network ls 查看网络列表

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/687276
推荐阅读
相关标签
  

闽ICP备14008679号