------------恢复内容开始------------
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
------------------------