Ubuntu 16.04 LTS 下 Docker 快速部署 Node.js

声明:非原创,仅供学习使用!

原文地址:https://www.cnblogs.com/li-peng/p/5827104.html

目录

一、前言

二、实现准备

三、创建 Node.js 程序

四、创建 Dockerfile

五、构建 Image

六、运行镜像

七、测试

八、总结


一、前言

Docker 是由 Go 语言编写的,一个快速部署的轻量级虚拟技术项目,允许开发人员将自己的程序和运行环境一起打包,制作成一个 Docker 的 Image(镜像),部署到服务器上,用户只需要下载这个 Image 就可以运行程序,免去每次都需要安装各种依赖和环境的麻烦,还能够做到应用程序之间的隔离。

安装 Docker:https://blog.csdn.net/jinking01/article/details/82490688

注意,为了开放权限,建议使用 root(超级用户):

sudo -i

二、实现准备

先创建一个简单的 Node.js Web app,来构建一个 Image。然后基于这个 Image 运行一个 Container(容器),从而实现快速部署。Image 与 Container 的关系:https://blog.csdn.net/taifei/article/details/82697312

由于网络的原因,Node.js 镜像从国内的镜像库下载,而不是 Docker Hub。

先从国内的镜像网站上 pull 下 nodejs 镜像:

docker pull hub.c.163.com/nce2/nodejs:0.12.2

下载完后查看我们的镜像,找到 Image Repository,等会会用到:

docker images

三、创建 Node.js 程序

之后所有文件的位置都在 ~ 下,也可以都放在自定义目录下。

创建 package.json,并写入相关信息和依赖:

vim package.json
{
 "name": "webtest",
 "version": "1.0.0",
 "description": "Node.js on Docker",
 "author": "lpxxn",
 "main": "server.js",
 "scripts": {
 "start": "node server.js"
 },
 "dependencies": {
 "express": "^4.13.3"
 }
}

创建 server.js:

vim server.js

写一个最简单的 Web,这个 Web 基于 express 框架,返回 Hello word。注意,我们监听的是 8888 端口:

'use strict';
 
var express = require('express');
 
var PORT = 8888;
 
var app = express();
app.get('/', function (req, res) {
 res.send('Hello world\n');
});
 
app.listen(PORT);
console.log('Running on http://localhost:' + PORT);

四、创建 Dockerfile

创建 Dockerfile 文件,这个文件是创建镜像所必需的文件:

vim Dockerfile

Docker 会依照 Dockerfile 的内容来构建一个镜像。先给出完整的代码,再一行一行的给出解释:

FROM hub.c.163.com/nce2/nodejs:0.12.2
 
# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service
 
# Bundle app source
COPY . /home/Service
RUN npm install
 
EXPOSE 8888
CMD [ "npm", "start" ]

我们来一句一句的解释:

1、

FROM hub.c.163.com/nce2/nodejs:0.12.2

FROM 是构建镜像的基础源镜像,hub.c.163.com/nce2/nodejs:0.12.2 是镜像的名称,也就是我们一开始从国内服务器上拉下来的那个 Image。如果本地没有,会自己 pull 镜像。

2、

# Create app directory

RUN mkdir -p /home/Service

WORKDIR /home/Service

第一句 RUN 用于在 Image 里创建一个文件夹,将来用于保存我们的代码。

第二句 WORKDIR 是将我们创建的文件夹做为工作目录。

3、

# Bundle app source

COPY . /home/Service

RUN npm install

第一句的 COPY 是把本机当前目录下的所有文件拷贝到 Image 的 /home/Service 文件夹下。

第二句的 RUN 使用 npm 安装我们的 App 所需要的所有依赖。

4、

EXPOSE 8888

由于我们的 Web app 监听的是 8888 端口,把这个端口暴露给主机,这样就能从外部访问 Web 了。

5、

CMD [ "npm", "start" ]

运行 npm start 命令,这个命令会运行 node service.js 来启动我们的 Web app。

五、构建 Image

在 Dockerfile 文件所在的目录下运行下面的命令来构建一个 Image:

docker build -t mynodeapp .

别忘了最后的的那个点,mynodeapp 是 Image 的名称:

...

出现上面两个 Successfully 表示成功。

构建完后查看一下我们的镜像:

docker images

六、运行镜像

docker run -d -p 8888:8888 52e3321d5b71

 

-d 表明 Container 会在后台运行,-p 表示端口映射,把本机的 8888 端口映射到 Container 的 8888 端口,这样外网就能通过本机的 8888 端口访问我们的 Web了。 

52e3321d5b71 是我们 Image 的 ID。

通过 docker ps 查看我们刚运行的 Container 的 ID:

8d4bddb59017 就是我们的 Container ID。查看 logs(日志):

如果你想到 Container 里,可以执行下面的命令,进入到里边后就可以像操作普通的 Linux 一样。如果想退出可执行 exit 命令:

docker exec -i -t 8d4bddb59017 /bin/bash

七、测试

我们先通过 curl 看能不能访问我们的 Web:

curl -i localhost:8888

也可以通过浏览器来看一下,注意,如果虚拟机带的动就用内部的火狐,否则用主机的浏览器。

ifconfig 查看 IP 地址:

在主机浏览器输入 192.168.220.155:8888:

成功!

八、总结

这个教程到此就结束了,希望这篇文章能帮助到你。如果有什么问题或者疑问可以留言交流。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Ubuntu上安装Kubernetes,您需要按照以下步骤进行操作: 1. 安装Docker:Kubernetes需要Docker来运行容器。您可以使用以下命令在Ubuntu上安装Docker: sudo apt-get update sudo apt-get install docker.io 2. 安装Kubernetes:您可以使用以下命令在Ubuntu上安装Kubernetes: sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl 3. 初始化Kubernetes:使用以下命令初始化Kubernetes: sudo kubeadm init 4. 部署网络插件:Kubernetes需要网络插件来管理容器之间的通信。您可以使用以下命令安装Calico网络插件: kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml 5. 加入节点:如果您需要将其他节点添加到Kubernetes集群中,请使用以下命令: sudo kubeadm join <master-node-ip>:<master-node-port> --token <token> --discovery-token-ca-cert-hash <hash> 以上是在Ubuntu上安装Kubernetes的基本步骤。请注意,这只是一个简单的指南,您可能需要根据您的具体情况进行调整。 ### 回答2: Ubuntu是一款流行的Linux操作系统,Kubernetes是一种流行的容器编排工具。在Ubuntu上安装和配置Kubernetes是很简单的,只需要遵循以下步骤: 1. 安装Docker和Kubernetes 首先,我们需要安装Docker和Kubernetes软件包。可以使用以下命令在终端中安装这些软件包: sudo apt-get update sudo apt-get install docker.io sudo apt-get install kubelet kubeadm kubectl 2. 初始化Kubernetes Master 要初始化Kubernetes Master,您需要运行以下命令: sudo kubeadm init --pod-network-cidr=10.244.0.0/16 其中,--pod-network-cidr参数用于指定Kubernetes的网络IP地址范围。 3. 安装网络插件 在Kubernetes Master初始化成功之后,您需要安装网络插件。 在这里,我们使用的是Flannel网络。 可以使用以下命令安装: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 4. 加入工作节点 要将工作节点加入到Kubernetes Master中,请使用以下命令: sudo kubeadm join <Master-IP>:<Master-Port> --token <Token> --discovery-token-ca-cert-hash <Hash> 其中,<Master-IP>:<Master-Port>应设置为Kubernetes Master IP地址和端口号。 <Token>应替换为从Kubernetes Master处获取的身份验证令牌。 <Hash>应替换为从Kubernetes Master处获取的证书哈希值。 5. 部署应用程序 完成了以上步骤后,您就可以部署您的应用程序了。您可以使用kubectl工具来创建和管理Kubernetes集群中的应用程序。 例如,以下命令将创建一个名为“nginx”的Deployment和一个名为“nginx-service”的Service: kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort 6. 测试应用程序 当部署和服务都完成后,您可以通过在Web浏览器中访问任何节点的IP地址和NodePort来测试您的应用程序。 例如:http://<Node-IP>:<Node-Port> 这就是在Ubuntu上安装Kubernetes的过程。如果按照以上步骤正确配置了Kubernetes Master和Worker节点,就可以开始部署和管理容器化应用程序了。 ### 回答3: Kubernetes是一款流行的容器编排平台,它能够自动化地管理和调度大规模的容器应用,使得开发者和运维人员可以更加便捷地管理容器应用的生命周期。而Ubuntu系统作为一款流行的开源操作系统,也能够方便地安装Kubernetes,下面就介绍一下在Ubuntu系统上安装Kubernetes的步骤。 首先,我们需要在Ubuntu系统中安装容器运行时Docker,可以使用以下命令一键安装: ``` $ sudo apt-get install docker.io ``` 安装完Docker之后,我们需要下载和安装Kubernetes的软件包。目前,Kubernetes发布的最新版本是v1.20.2,可以在官网上下载相应的软件包(https://kubernetes.io/docs/setup/release/notes/)。 下载完成后,我们需要解压缩Kubernetes软件包。假设我们把软件包解压缩到了/opt/kubernetes目录下,接着执行以下命令: ``` $ cd /opt/kubernetes $ sudo tar -xzvf kubernetes-server-linux-amd64.tar.gz ``` 解压缩完成后,我们需要将各个组件的二进制文件拷贝到系统的PATH中。在Kubernetes软件包中,有一些常用的组件,如kube-apiserver、kube-controller-manager、kube-scheduler等。下面以kube-apiserver为例,执行以下命令: ``` $ sudo cp /opt/kubernetes/server/bin/kube-apiserver /usr/local/bin/ ``` 接着,我们需要配置Kubernetes的master节点。Kubernetes使用etcd作为数据存储,我们需要在master节点上安装etcd。可以使用以下命令安装: ``` $ sudo apt-get install etcd ``` 安装完etcd之后,我们需要配置Kubernetes的master节点,生成TLS证书,配置认证授权等。这些步骤比较繁琐,请参考官方文档进行配置。 最后,我们需要启动Kubernetes的各个组件。在Ubuntu系统中,可以使用systemd来管理服务。以kube-apiserver为例,执行以下命令: ``` $ sudo systemctl start kube-apiserver $ sudo systemctl enable kube-apiserver ``` 启动各个组件之后,我们可以通过kubectl命令来管理Kubernetes集群。kubectl是Kubernetes的命令行工具,可以用来部署应用、管理容器等。安装kubectl可以使用以下命令: ``` $ sudo apt-get install kubectl ``` 至此,我们已经完成了在Ubuntu系统上安装Kubernetes的所有步骤。安装完成后,我们可以使用Kubernetes来管理容器应用,提高应用部署和管理的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值