记一次阿里云服务器中部署egg遇到的问题 (docker vim)

摘要:
RUNnpmi--registry=https://registry.npm.taobao.org#拷贝所有源代码到工作目录COPY./home/egg#暴露容器端口EXPOSE8003#启动node应用CMDnpmrunprod3.压缩eggjs上传到服务器/home目录4.cd/home然后解压缩unzipegg.zip5.cdegg目录6.构建镜像dockerbuild-tegg_demo.7.查看镜像dockerps#启动镜像-d表示后台执行,-p8003:3000表示指定本地的8003端口隐射到容器内的3000端口,docker_demo为镜像名称dockerrun-d-p9000:3000docker_demo#查看容器dockerps附上常用命令#查看当前docker版本docker-v#查看当前本地所有镜像dockerimages#构造镜像,用法dockerbuild-t镜像名称.dockerbuild-tdocker_demo.#用于容器与主机之间的数据拷贝。用法dockercp主机文件地址容器内地址。104e28f2f072容器idsudodockerexec-it104e28f2f072/bin/bash#列出容器。

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

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:3000docker_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

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

免责声明:文章转载自《记一次阿里云服务器中部署egg遇到的问题 (docker vim)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS8 几个关机重启的命令解决 fatal error: Eigen/Core: No such file or directory下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker 源码分析 一(基于1.8.2版本),docker daemon启动过程;

最近在研究golang,也学习一下比较火的开源项目docker的源代码,国内比较出名的docker源码分析是孙宏亮大牛写的一系列文章,但是基于的docker版本有点老;索性自己就git 了一下最新的代码研读; docker是c/s的架构,分为docker client 和 docker daemon,client端发送命令,daemon端负责完成clien...

在windows环境里,用Docker搭建Redis开发环境(新书第一个章节)

大家都知道高并发分布式组件的重要性,而且如果要进大厂,这些技术不可或缺。但这些技术的学习难点在于,大多数项目里的分布式组件,都是搭建在Linux系统上,在自己的windows机器上很难搭建开发环境,如果无法搭建开发环境,就无法实际操练,而单靠背理论题,是无法通过面试的。 比如搭建Redis环境,或许可以在windows上下载个版本,但这个版本不是最新的,而...

RabbitMQ 集群模式

1、主备模式: 实现RabbitMQ的高可用集群,一般在并发和数据量不高的情况下,这种模型非常的好用且简单。主备模式也称之为Warren模式 主备模式架构图 HaProxy配置 备注: rabbitmq集群节点配置 inter 每隔5秒对mq集群做健康检查, 2次正确证明服务器可用, 2次失败证明服务器不可用,并且配置主备机制 2、远程模式(早期使用较...

使用Docker部署Gitlab

  1. 拉取gitlab镜像 docker pull gitlab/gitlab-ce 2. 运行gitlab实例   GITLAB_HOME=`pwd`/data/gitlab docker run -d --hostname gitlab --publish 8443:443 --publish 80:80 --publish...

基于docker创建的Jenkins,settings.xml文件放在哪里

如果运行容器时挂载目录如下 启动容器 docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true  --restart=always -v /home/jenkins_home:/var/jenkins_home jenkins/jenkins:latest 则需...

Minikube之Win10单机部署Kubernetes(k8s)自动化容器操作的开源平台

Minikube之Win10单机部署Kubernetes(k8s)是自动化容器操作的开源平台,基于这个平台,你可以进行容器部署,资源调度和集群扩容等操作。如果你曾经用过Docker部署容器,那么可以将Docker看成Kubernetes底层使用的组件,Kubernetes是Docker的上层封装,通过它可以很方便的进行Docker集群的管理。今天我们使用m...