Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。 Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。 总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。 https://hub.docker.com/ qq12352100 qq12352100 安装:https://docs.docker.com/engine/install/centos/ #yum install -y yum-utils #yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #yum install docker-ce docker-ce-cli containerd.io #yum list docker-ce --showduplicates | sort -r #docker version 启动: #systemctl start docker 验证: #docker run hello-world #docker image pull library/hello-world docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。由于 Docker 官方提供的 image 文件,都放在library组里面,简写: #docker image pull hello-world #docker image ls 列出本机的所有 image 文件 #docker image rm [imageName] 删除 image 文件 #docker container run hello-world 运行hello-world 如果发现本地没有指定的 image 文件,就会从仓库自动抓取,也可以使用docker container run命令的--rm参数,在容器终止运行后自动删除容器文件。 运行成功: Hello from Docker! This message shows that your installation appears to be working correctly. #docker container ls 列出本机正在运行的容器 #docker container ls --all 列出本机所有容器,包括终止运行的容器 #docker container rm [containerID] 命令删除 #docker container kill [containID] 手动终止 如何编写 Dockerfile 文件? 1、首先,在项目的根目录下,新建一个文本文件.dockerignore写入: .git node_modules npm-debug.log 2、在项目的根目录下,新建一个文本文件 Dockerfile写入: FROM node:8.4 COPY . /app WORKDIR /app RUN npm install --registry=https://registry.npm.taobao.org EXPOSE 3000 -------------------------------------- FROM node:8.4:该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node。 COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。 WORKDIR /app:指定接下来的工作路径为/app。 RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。 EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口。 -------------------------------------- 3、创建 image 文件 #docker image build -t koa-demo:0.0.1 . 上面代码中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。 #docker image ls 4、生成容器 #docker container run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash 如果一切正常,就会返回一个命令行提示符。 root@66d80f4aaf1e:/app# 执行下面的命令。 root@66d80f4aaf1e:/app# node demos/01.js -------------------------------------- -p参数:容器的 3000 端口映射到本机的 8000 端口。 -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。 koa-demo:0.0.1:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。 /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。 --------------------------------------