记一次阿里云服务器中部署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

 

 

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

 

posted @ 2020-07-06 12:44  \面朝阳光/  阅读(644)  评论(0编辑  收藏  举报