zoukankan      html  css  js  c++  java
  • 记一次阿里云服务器中部署egg遇到的问题 (docker vim)

    ------------恢复内容开始------------

    1.下载好egg脚手架,

    在package.json 同目录 添加 Dockerfile

    2.编写 Dockerfile 

    # 设置基础镜像,如果本地没有该镜像,会从Docker.io服务器pull镜像
    FROM node
    # 设置时区
    # RUN apk --update add tzdata 
    #     && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
    #     && echo "Asia/Shanghai" > /etc/timezone 
    #     && apk del tzdata
    
    # 创建app目录
    RUN mkdir -p /home/egg
    
    # 设置工作目录
    WORKDIR /home/egg
    
    # 拷贝package.json文件到工作目录
    # !!重要:package.json需要单独添加。
    # Docker在构建镜像的时候,是一层一层构建的,仅当这一层有变化时,重新构建对应的层。
    # 如果package.json和源代码一起添加到镜像,则每次修改源码都需要重新安装npm模块,这样木有必要。
    # 所以,正确的顺序是: 添加package.json;安装npm模块;添加源代码。
    COPY package.json /home/egg/package.json
    
    # 安装npm依赖(使用淘宝的镜像源)
    # 如果使用的境外服务器,无需使用淘宝的镜像源,即改为`RUN npm i`。
    RUN npm i --registry=https://registry.npm.taobao.org
    
    # 拷贝所有源代码到工作目录
    COPY . /home/egg
    
    # 暴露容器端口
    EXPOSE 8003
    
    # 启动node应用
    CMD npm run prod
    

    3.压缩 eggjs 上传到服务器  /home 目录

    4.cd /home   然后解压缩 unzip egg.zip   

    5.cd egg 目录

    6.   构建镜像     docker build -t egg_demo .  (不要少了点 .)

    7.查看镜像 docker ps 

    #启动镜像 -d表示后台执行,-p 8003:3000表示指定本地的8003端口隐射到容器内的3000端口,docker_demo为镜像名称
    docker run -d -p 9000:3000 docker_demo
    #查看容器
    docker ps
    

     附上 常用命令

    #查看当前docker版本
    docker -v
    #查看当前本地所有镜像
    docker images
    #构造镜像,用法docker build -t 镜像名称 .
    docker build -t docker_demo .
    #用于容器与主机之间的数据拷贝。用法docker cp 主机文件地址 容器内地址。12d7f14v45cv为容器id。
    docker cp /www/runoob 12d7f14v45cv:/www/
    #创建一个新的容器并运行,-d为后台执行,-p 9000:3000前面为主机端口,后面是容器端口。docker_demo镜像名
    docker run -d -p 9000:3000 docker_demo
    #启动已被停止的容器
    docker start docker_demo
    #关闭已被启动的容器
    docker stop docker_demo
    #重新启动容器
    docker restart docker_demo
    #杀掉一个运行中的容器。
    docker kill -s KILL docker_demo
    #删除一个或多少容器。-f :通过SIGKILL信号强制删除一个运行中的容器-l :移除容器间的网络连接,而非容器本身-v :-v 删除与容器关联的卷
    docker rm -f docker_demo、docker_demo1
    #在运行的容器中执行命令。104e28f2f072容器id
    sudo docker exec -it 104e28f2f072 /bin/bash 
    #列出容器。 -a:所有容器包含没有运行的
    docker ps 
    #获取容器获取容器的日志 104e28f2f072容器id,-t:显示时间戳
    docker logs -f -t 104e28f2f072 
    #登陆镜像仓库
    docker login
    #获取镜像
    docker pull 
    #上传镜像
    docker push
    #查看指定镜像的创建历史。
    docker history docker_demo
    #进入容器内部
    docker exec -it 806c /bin/bash      #806c 为容器id

    进入容器内部编辑文件提示  command not found 

    执行

    apt-get update

    apt-get install -y vim

    ------------------------ 

  • 相关阅读:
    五子棋项目
    判断是否是素数
    双链表
    九九乘法表
    栈和队列
    c排序
    蓝桥杯 接水问题 模拟
    蓝桥杯 调和数列问题
    蓝桥杯 Hanoi问题 递归
    蓝桥杯 排列问题
  • 原文地址:https://www.cnblogs.com/qq735675958/p/13254225.html
Copyright © 2011-2022 走看看