使用 Docker 容器轻松安装和启动 Node.js 16 环境 (使用docker搭建开发环境)
简介
Docker 是一种容器化平台,用于在独立的环境中打包和运行应用程序。使用 Docker 可以轻松地在 Linux、Windows 和 macOS 上安装和启动 Node.js 环境。先决条件
在开始之前,确保已满足以下先决条件:已安装 Docker Desktop。已在系统中安装了 Node.js(可选)。安装 Node.js 16 镜像
要安装 Node.js 16 镜像,请运行以下命令:```docker pull node:16```这个命令将从 Docker Hub 下载 Node.js 16 镜像。创建并启动容器
接下来,让我们创建一个新的 Docker 容器并使用 Node.js 16 镜像运行它。为此,请运行以下命令:```docker run -it --name node-app -p 3000:3000 node:16如何在docker里部署nodejs
下载镜像,安装环境我们先执行如下命令,启动虚拟机: $ boot2docker start2014/08/18 21:22:41 Waiting for VM to be started..............2014/08/18 21:23:21 Started.2014/08/18 21:23:21 Docker client does not run on Windows for now. Please use2014/08/18 21:23:21 boot2docker ssh2014/08/18 21:23:21 to SSH into the VM instead.如果我们的物理机内存低于4G,那么跑这个boot2docker可能需要手动设置内存占用大小: $ boot2docker start -m=512我们利用命令就可以进入linux虚拟机了 $ boot2docker ssh boot2docker: 1.1.2master : c - Thu Jul 24 03:24:10 UTC 2014执行 docker 命令,会有一个命令列表,里面列出了所有 docker 支持的功能,列表如下: Commands:attachAttach to a running containerbuild Build an image from a DockerfilecommitCreate a new image from a containers changes... ...下面会对一些常用的命令进行示例说明,我们可以通过如下命令,先查找centos的镜像,并把他下载下来 $ docker search centos #查找centos名字的镜像$ docker pull centos #下载官方纯净版本的centos镜像在调用search命令时,你会看到有好多centos包,他们都是这样的<username>/<image_name>,这些不在根目录的镜像都是非官方的,是其他用户提交到docker hub上去的,耐心等待片刻我们就可以将centos的镜像拉下来了。 如果脸黑,镜像又不幸被墙,那么试试加上下面的hosts: 成功下载好centos镜像之后,我们可以利用如下命令来查看镜像列表: $ docker imagesREPOSITORYTAG IMAGE IDCREATEDVIRTUAL SIZEcentoscentos6 b1bdd552 weeks ago212.5 MBcentoscentos7 b157b77b1a652 weeks ago243.7 MBcentoslatestb157b77b1a652 weeks ago243.7 MB接下来我们就利用centos7这个镜像输出一段 hello world $ docker run b15 /bin/echo Hello worldHello world注意这里的 b15,他表示centos7这个images的id,不用全部打全,只要保证输入的id前几位能找到唯一镜像即可,这点很赞。 稍微复杂一点的例子: $ docker run-i -d -t b15 /bin/sh -c while true; do echo hello world; sleep 1; done-i表示同步container的stdin,-t表示同步container的输出,-d表示deamon,以后台启动这个container,执行这个container是永远不会停止的,每一秒钟都会输出hello world。 至于什么是container,container和image的关系我们下一段再说,列出镜像的历史: $docker history image_name
如何构建基于docker的开发环境
一、基本思路
1. 创建一个用于开发Django App的目录
mkdir django-example && cd django-example
2. 构建基本开发环境
touch Dockerfiletouch
文件填入以下内容,以便一会用pip安装Python 模块时使用阿里云镜像加速:
[global]index-url =文件中填入要安装的Python 模块:
编写构建开发环境的Dockerfile文件,填入以下内容:
# MAINTAINERGevin <># DOCKER-VERSION1.12.0## Dockerizing Python: Dockerfile for building python applicationsFROM python:2.7.12MAINTAINER Gevin <>WORKDIR /usr/src/app# 使用阿里云的pip镜像COPY /root// COPY /usr/src/app/ pip install -r /usr/src/app/ 8000CMD [bash]
然后执行下面命令构建镜像:
docker build -t gevin/django-example:0.1 .
构建成功后,执行docker images命令,可以查看到当前构建好的image
docker imagesREPOSITORY TAG IMAGE IDCREATED SIZEgevin/django-example0.1 1855fc3c hours ago698.9 MB
3. 使用构建的image拉起开发环境
执行下面命令,可以以前台形式拉起django-example镜像的一个container:
docker run -it --rm -v $(pwd):/usr/src/app gevin/django-example:0.1
上面命令使用了data volume,把当前目录挂载到container中的工作目录下,这样当前目录下的所有文件都会映射到container的工作目录下,在工作目录下的所有改动,也都会保存到宿主机的当前目录下。
4. 创建django项目
上一步的命令创建了一个安装了django的交互式的container,直接在该container中执行创建django项目的命令即可:
root@7c91ff:/usr/src/app# django-admin startproject dj_example
上述命令,在container中基于django的命令创建了一个django项目,由于上一步操作时把宿主机的当前目录挂载到container的工作目录下,因此,刚刚在container中创建的django项目,在宿主机上也能看到。
container:
root@7c91ff:/usr/src/app# lsDockerfile dj_
宿主机:
django-example lsDockerfiledj_
5. 启动django项目
docker run -it --rm -p 8000:8000 -v $(pwd):/usr/src/app gevin/django-example:0.1 python dj_example/ runserver 0.0.0.0:8000
二、Docker-compose与Django环境的结合
每次使用上面章节中介绍的冗长命令来使用django环境非常麻烦,docker-compose可以简化操作。
首先在当前目录下创建文件:
➜ django-example touch
然后在该文件中写入如下内容:
version: 2services:django-example:image: gevin/django-example:0.1volumes:- ./dj_example:/usr/src/appports:- 8000:8000command: python runserver 0.0.0.0:8000
执行下面命令即可拉起django服务:
➜ django-example docker-compose up# Starting djangoexample_django-example_1# Attaching to djangoexample_django-example_1
在浏览器中访问,即可看到默认的django页面
注:
上面的docker-compose文件,把./dj_example目录挂载到/usr/src/app,免去执行django命令时,需要对应到下级目录的麻烦,但这样隐藏了原来container中的文件,需要注意。
基于docker-compose 执行django 命令
使用docker-compose 的 run命令,可以在容器内执行相应操作,如:
对django服务的数据库做migrate操作:
docker-compose run django-example python migrate
创建超级用户:
docker-compose run django-example python createsuperuser# Username (leave blank to use root): gevin# Email address:# Password:# Password (again):# Superuser created successfully.
创建成功后,访问,即可使用刚创建的用户(即gevin),登录数据库管理页面
由于使用了数据卷,保存在sqlite数据库中的数据会一直有效。
三、简化方案
上面方案已经成功构建了django 环境,并应用于开发。上面的方案主要是为了阐述实现思路,在实际操作起来至少有两个麻烦:(1)需要进入容器里面创建django项目;(2)由于django项目是建立在当前目录的子目录下,使用docker-compose 时为了命令简单通用,更换了数据卷。
在实践中,利用docker-compose的run命令,没必要进入容器创建django项目;只要把django项目建立在当前目录下,也没必要更换数据卷了。
因此,可以把上面的方案再理一下,按下面步骤构建开发环境,并应用到开发中去。
入门、快速搭建Docker分布式项目环境
1.什么是Docker
借用下网上传统虚拟机与Docker的对比图片。
传统虚拟化应用程序中,不仅包含应用程序和必要的二进制文件库,还包含一个完整的操作系统。
而Docker容器仅包含应用程序和相关依赖项,在主机的操作系统用户空间中作为一个独立进程运行,与其他容器共享内核,从而实现了虚拟机的资源隔离和分配,具有更高的可移植性和效率提高。
2.为什么使用Docker
1.更快速的交付和部署
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接 使用这个容器来部署代码。
2.高效部署和扩容
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
3.更高的资源利用率
Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。
4.更简单的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
的工作原理和概念
自己制作镜像然后上传仓库或使用仓库已有的镜像文件拉取到容器中部署。
为了方便Docker的说明,本次例子使用虚拟机安装CentOS 7来展示。CentOS 7的安装请等查看下篇文章或自行网络。
1.安装之前的准备工作
按照顺序,执行如下操作
1、安装必要的一些系统工具
2、添加软件源信息
3、更新并安装Docker-CE
安装准备工作
2.开启Docker服务
运行docker version 如果出现以下情况,说明当前用户没有 root相关操作权限
无root权限
解决思路
先查看有多少镜像
运行docker run hello-world 测试命令,如果出现下方红框内消息,证明安装成功
3.查看docker基本信息和版本
1.构建Nginx基础镜像
查询nginx镜像
镜像拉取
查看对外的访问路径
怎么才能访问刚才启用的nginx
nginx页面内容
我们可以进入容器,看下这个容器是什么样子
查看nginx在哪个位置
我们发现尽管启动了nginx,但是在外部还是不能访问,这是因为docker具有隔离机制,要不然怎么叫做容器化部署呢
Docker内nginx端口
对Nginx进行外网端口映射;
2.构建Tomcat基础镜像
打开容器后,默认安装目录在 /usr/local/
3.创建自己的专属镜像
用Dockerfile来制作镜像
创建一个新的镜像,并起名字为nywlw
查看新的镜像
运行自己创建的容器
4.删除容器实例
5.删除镜像
每天发布更多新鲜有含量的技术文章、总有一款适合你。
若对本页面资源感兴趣,请点击下方或右方图片,注册登录后
搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源
如有其他疑问,请咨询右下角【在线客服】,谢谢支持!
相关文章
- 告别复杂操作!虫虫助手打造便捷高效的安卓应用下载之旅 (告别复杂操作的句子)
- 虫虫助手:你的专属安卓应用管理神器,一键安装、卸载、升级 (你给我下载一个虫虫助手)
- 虫虫助手:汇聚海量应用,满足你的所有下载需求
- 告别广告!虫虫助手带你畅享无干扰的安卓应用体验 (告别违反广告法吗)
- 虫虫助手:最强安卓应用商店,免费下载热门应用 (虫虫助手最新版更新)
- 文件共享的理想工具:ZIP 压缩软件,轻松共享大型文件,跨平台无忧 (文件共享的理由怎么写)
- 节省时间和存储空间:ZIP 压缩软件,快速高效地压缩文件,释放宝贵资源 (节省时间和存货的方法)
- 告别文件混乱:ZIP 压缩软件,将您的文件组合在整洁的压缩包中,带来清晰条理 (告别文件混乱的句子)
- 文件管理的利器:ZIP 压缩软件,简化文件组织和访问,提升工作效率 (文件管理的利弊分析)
- 文件安全传输的守护神:ZIP 压缩软件,保护您的文件免受病毒和恶意软件侵害 (文件安全传输协议)
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~