Docker

Docker

将node项目打包成docker镜像:

https://www.cnblogs.com/williamjie/p/10147452.html

Docker资料:

https://blog.csdn.net/K_520_W/article/details/83097155

定义

解决了运行环境和配置问题的软件容器,实现软件跨平台。虚拟化技术,像开发人员把项目发给运维人员,就会碰到配置、环境问题而导致项目跑不起来。

docker与JVM的对比

JVM:启动过程慢(分钟级别的)、依赖于硬件

Docker:启动快(秒级别的)类似一个精简版的linux系统,

docker的生命周期

Docker的生命周期包含三个部分,镜像,容器,仓库,我们可以把镜像,容器想像成java的类和对象,即容器是由镜像实例化而来的。也就是说我们想使用装有相关软件的镜像,首先要把镜像创建成容器。

Docker常用命令

docker search 镜像名	  			从docker hub网站搜索:
docker images		   			  查看镜像
docker inspect 容器id	  			 查看容器的信息
docker run -it 镜像名[:版本号]	   版本号默认是latest,启动容器
docker exec -it 容器名		         登入容器
docker ps                          查看启动的容器
docker  stop/start  容器名          停止/启动容器
docker rm -f redis                 删除容器
docker rm $(docker ps -aq)         删除全部已退出的容器

数据卷Volume

容器中数据的持久存储;容器间资源共享;容器的迁移;

对数据卷的修改会立马生效;对数据卷的更新,不会影响镜像;

Dockerfile

类似java中类的字节码文件,由它构建一个类,这里Dockerfile用来构建一个镜像,还有一种方法构建镜像的是使用命令:docker commit

  • Dockerfile是软件的原材料
  • Docker镜像是软件的交付品
  • Docker容器则可以认为是软件的运行态。

Dockerfile中常用命令

FROM: 指定base镜像

COPY: 将文件从build context复制到镜像

ADD: 与copy类似,不同的是,如果复制的是归档文件(tar,zip,tgz,xz),文件会被自动解压到dest.

ENV: 设置环境变量,环境变量可被后面的指令使用

EXPOSE: 指定容器中的进程监听某个端口,docker可以将该端口暴露出来

VOLUME: 将文件或目录声明为volume

WORKDIR: 为后面的run,entpypint,add,copy指令设置镜像中的当前工作目录(容器目录)

RUN: 在容器中运行指定的命令

CMD: 容器启动时运行指定的命令。Dockerfile中可以有多个CMD指令,但只有最后一个生效。CMD可以被docker run 之后的参数替换。

ENTRYPOINT: 设置容器启动时的命令。Dockerfile中可以有多个ENTRYPOINT,但只有最后一个生效,CMD或者docker run之后的参数会被当作参数传 递给ENTRYPOINT.

Dockerfile使用案例:

https://blog.csdn.net/geek_xiong/article/details/91995051

Docker上部署node项目

案例jwtDemo项目:https://github.com/lzy-cat/docker_node.git

1、在linux系统中上传你的jwtDemo项目

2、在项目的根目录中创建一个Dockerfile(文件名不能改)

touch Dockerfile

Dockerfile内容如下:

# 使用alpine版本的node
FROM node:8-alpine
# 复制项目到镜像的根目录中
COPY . /dockernode/jwtDemo
# 启动容器时,进入的目录
WORKDIR /dockernode/jwtDemo
# 安装node依赖
RUN npm i
# 该向外暴露端口是jwtDemo项目的端口
EXPOSE 3011
ENTRYPOINT [ "npm", "start" ]

3、构建镜像

# lzy/jwt:1.3(自定义的镜像名:版本号),版本号不写,默认是latest。 注意最后有一个小数点
docker build -t lzy/jwt:1.3 .

4、运行容器

# 3043指浏览器访问的端口号,3011是Dockerfile中的端口号
docker run -it -p 3043:3011 lzy/jwt:1.3

5、windows下访问项目

# 192.168.2.2指linux的ip地址
http://192.168.2.2:3043/users/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值