网站建设开发实训的目的,软件技术专升本有哪些学校,怎么样建设个人网站,南宁网站制作专业简介 Docker 属于 Linux 容器的一种封装#xff0c;提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。 Docker 将应用程序与该程序的依赖#xff0c;打包在一个文件里面。运行这个文件#xff0c;就会生成一个虚拟容器。程序在这个虚拟容器里运行#xf… 简介 Docker 属于 Linux 容器的一种封装提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。 Docker 将应用程序与该程序的依赖打包在一个文件里面。运行这个文件就会生成一个虚拟容器。程序在这个虚拟容器里运行就好像在真实的物理机上运行一样。有了 Docker就不用担心环境问题。 总体来说Docker 的接口相当简单用户可以方便地创建和使用容器把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改就像管理普通的代码一样。 用途 Docker 的主要用途目前有三大类。 1提供一次性的环境。比如本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。 2提供弹性的云服务。因为 Docker 容器可以随开随关很适合动态扩容和缩容。 3组建微服务架构。通过多个容器一台机器可以跑多个服务因此在本机就可以模拟出微服务架构。 三个核心 Image和 windows 的那种 iso 镜像相比Docker 中的镜像是分层的可复用的而非简单的一堆文件迭在一起类似于一个压缩包的源码和一个 git 仓库的区别。 Container 容器的存在离不开镜像的支持他是镜像运行时的一个载体类似于实例和类的关系。依托 Docker 的虚拟化技术给容器创建了独立的端口、进程、文件等“空间”Container 就是一个与宿机隔离 “容器”。容器可宿主机之间可以进行 port、volumes、network 等的通信。 Repository Docker 的仓库和 git 的仓库比较相似拥有仓库名、tag。在本地构建完镜像之后即可通过仓库进行镜像的分发。常用的 Docker hub 有 https://hub.docker.com/ 、 https://cr.console.aliyun.com/ 等。常用命令 1.查看docker版本docker version 2.启动本机的docker服务service docker start 3.列出本机的所有 image 文件docker images或者docker image ls 4.删除 image 文件docker rmi [imageName] 5.将 image 文件从远程仓库抓取到本地docker pull hello-world 6.列出本机正在运行的容器docker ps或者 docker container ls 7.列出本机所有容器包括终止运行的容器docker container ls --all 8.运行这个image文件docker run hello-world 9.终止运行某个docker容器docker kill [containID] 10.终止运行的容器文件依然会占据硬盘空间可以使用docker rm命令删除docker rm [containerID] 11.运行这个image文件并把容器的3000端口映射到本机8000端口同时映射shell在本地可以输入命令行docker run -p 8000:3000 -it koa-demo /bin/bash -p参数容器的 3000 端口映射到本机的 8000 端口。-it参数容器的 Shell 映射到当前的 Shell然后你在本机窗口输入的命令就会传入容器。koa-demo:0.0.1image 文件的名字如果有标签还需要提供标签默认是 latest 标签。/bin/bash容器启动以后内部第一个执行的命令。这里是启动 Bash保证用户可以使用 Shell。 12.创建image文件docker build -t koa-demo . -t参数用来指定 image 文件的名字后面还可以用冒号指定标签。如果不指定默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径上例是当前路径所以是一个点。 13.登陆远程仓库docker login 14.为本地的 image 标注用户名和版本docker tag [imageName] [username]/[repository]:[tag]docker tag koa-demos:0.0.1 ruanyf/koa-demos:0.0.1 15.发布 image 文件docker push [username]/[repository]:[tag] 16.新建容器每运行一次就会新建一个容器docker start [containerID] 同样的命令运行两次就会生成两个一模一样的容器文件。如果希望重复使用容器就要使用docker start命令它用来启动已经生成、已经停止运行的容器文件。 17.查看 docker 容器的输出即容器里面 Shell 的标准输出docker logs [containerID] 如果docker run命令运行容器的时候没有使用-it参数就要用这个命令查看输出。 18.用于进入一个正在运行的 docker 容器docker exec -it [containerID] /bin/bash或者docker exec -it [containerID] /bin/bash 如果docker run命令运行容器的时候没有使用-it参数就要用这个命令进入容器。一旦进入了容器就可以在容器的 Shell 执行命令了。 19.从正在运行的 Docker 容器里面将文件拷贝到本机docker cp [containID]:[/path/to/file] . 制作自己的 Docker 容器 编写.dockerignore .git
node_modules
npm-debug.log 上面代码表示这三个路径要排除不要打包进入 image 文件。如果你没有路径要排除这个文件可以不新建。 编写 Dockerfile 文件 FROM node:8.4
COPY . /app
WORKDIR /app
RUN npm install --registryhttps://registry.npm.taobao.org
EXPOSE 3000
CMD node demos/index.js 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 端口暴露出来 允许外部连接这个端口。CMD node demos/index.js表示容器启动后自动执行node demos/index.js。PS RUN命令与CMD命令的区别简单说RUN命令在 image 文件的构建阶段执行执行结果都会打包进入 image 文件CMD命令则是在容器启动后执行。另外一个 Dockerfile 可以包含多个RUN命令但是只能有一个CMD命令。 注意指定了CMD命令以后docker container run命令就不能附加命令了比如前面的/bin/bash否则它会覆盖CMD命令。 创建image文件 docker build -t koa-demo:0.0.1 . -t参数用来指定 image 文件的名字后面还可以用冒号指定标签。如果不指定默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径上例是当前路径所以是一个点。 创建成功后运行 docker image ls 可以看到新生成的image文件koa-demo了 生成容器 docker run -p 8000:3000 -it koa-demo:0.0.1 /bin/bash -p参数容器的 3000 端口映射到本机的 8000 端口。-it参数容器的 Shell 映射到当前的 Shell然后你在本机窗口输入的命令就会传入容器。koa-demo:0.0.1image 文件的名字如果有标签还需要提供标签默认是 latest 标签。/bin/bash容器启动以后内部第一个执行的命令。这里是启动 Bash保证用户可以使用 Shell。 如果一切正常运行上面的命令以后就会返回一个命令行提示符你可以在上面启动node服务。 root66d80f4aaf1e:/app# 发布 image 文件 1.去 hub.docker.com 或 cloud.docker.com 注册一个账户。然后用下面的命令登录。 docker login 2.为本地的 image 标注用户名和版本 docker tag [imageName] [username]/[repository]:[tag] 3.发布 image 文件 docker push [username]/[repository]:[tag] 发布成功以后登录 hub.docker.com 或 cloud.docker.com 就可以看到已经发布的 image 文件。 参考链接 从 0 开始了解 DockerDocker 入门教程