weekeight.github.io icon indicating copy to clipboard operation
weekeight.github.io copied to clipboard

使用 nodejs + docker 搭建图片占位服务

Open weekeight opened this issue 9 years ago • 0 comments

使用 nodejs + docker 搭建图片占位服务

项目地址

关于 docker

docker 简单地理解为一套轻量级的操作系统虚拟化的解决方案,使用docker创建的容器就类似使用 vmware/virtual box/paralles desktop 等虚拟化计划创建虚拟机,可以隔离环境,不会相互影响。

更多详细官方资料

安装docker

mac osx docker 安装

基本概念

docker host(docker主机,服务端):运行容器(PS: 虚拟主机),隔离环境,提供服务

docker client(docker 客户端):连接docker host,操作服务端,生成镜像,创建容器等

容器:沙盒,隔离的运行环境,暴露端口提供服务,不会影响沙盒外的应用

镜像:应用镜像,可把应用所依赖的环境、模块等打包到镜像中,作为一个独立载体单独运行

Dockerfile

几个基本命令:

FROM: 基于哪个镜像(镜像可在docker hub上面搜索,或直接通过命令行 docker search搜索)

ENV: 创建环境变量供容器中的镜像运行时使用

RUN: 安装镜像依赖软件时使用

CMD: 容器启动时执行的命令,一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD,例如:CMD ["npm", "start"](注意:要使用双引号)

EXPOSE: 容器内部服务开启的端口。主机上要用时需要在启动容器时做端口映射:`

docker run --name imageHolderContainer -d -p 3000:8888 image-holder 

COPY: 拷贝命令,用于将项目目录拷贝到容器的位置,配合 WORKDIR 使用

WORKDIR: 工作目录空间

更多官网命令文档

docker 基本命令

// 查看当前主机中有哪些镜像
docker images

// 列出所有容器
docker ps

// 删除镜像
docker rmi

// 删除容器
docker rm

// 生成镜像
docker build -t 镜像名字 .

// 创建容器运行镜像(-d: 在后台运行 -p: 端口映射)
docker run --name 容器名字 -d -p 3000:8888 镜像名字

// 启动/暂停/重启容器
docker start/stop/restart

访问

启动容器后,访问服务需要使用 docker host 的ip访问,即在进入 docker client 的命令行中提示的ip地址

weekeight avatar Feb 20 '16 16:02 weekeight