当前位置: 首页 > 后端技术 > Node.js

第一次上手Docker

时间:2023-04-03 10:16:58 Node.js

Docker第一次上手入门DevOps/开发运维/不了解运维部署前端开发项目的实际需求,升级构建toolssmoothly安装好Docker,上官网几个命令涉及到dockerimages![dockerimages](./assets/docker-images.jpg)dockerbuild-t指定镜像的repository和tag。这两项的含义可以在`dockerimages`命令的输出中看到。dockerbuild时,可以同时指定多个`-t`选项dockerrun-v将宿主目录/本地目录挂载到镜像dockerrun```bashdockerrun[options]image[command][args]```buildimage/Dockerfile首先看一个Dockerfile的例子:```dockerfile指定了当前镜像的基础镜像,下面一行指定了当前是用node:8-slim构建的,这个镜像是官方仓库提供的,FROMnode:10-slim指定镜像的工作目录WORKDIR/usr/local/workdirCopyfilesCopyfromto/usr/local/workdirCOPYfrom/usr/local/workdir构建镜像时,执行的命令在镜像RUNnpmi-g。--registry=https://registry.npm.taobao.org/指定在容器中运行的命令CMD["ls"]```除了上面例子中的几个常用指令外,在Dockerfile:-EXPOSE-ENV-ADD-ENTRYPOINT-VOLUME-USER-ONBUILD有关如何编写Dockerfile的建议,您可以参考[BestpracticesforwritingDockerfiles](https://docs.docker.com/devel..._best-practices/)遇到的几个问题1.镜像中的文件不会改变。`dockerrun`命令不会修改镜像中的文件。下次执行`dockerrun`时,不会保留上次的结果。2.构建图像将被缓存。如果构建过程中某个步骤失败,则会缓存之前的步骤。在下一次重建时,不再执行这些步骤。![docker-build-cache](./assets/docker-build-cache.jpg)3.容器与镜像的关系镜像可以看做是特定环境下文件的组合;image是静态的,可以存放在不同的机器上容器是这个环境的具体执行实例;容器是动态的,与当前环境密切相关;当某台机器启动一个镜像时,就会生成一个容器。