weekeight.github.io
weekeight.github.io copied to clipboard
使用 nodejs + docker 搭建图片占位服务
使用 nodejs + docker 搭建图片占位服务
关于 docker
docker 简单地理解为一套轻量级的操作系统虚拟化的解决方案,使用docker创建的容器就类似使用 vmware/virtual box/paralles desktop 等虚拟化计划创建虚拟机,可以隔离环境,不会相互影响。
安装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地址