链接: http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
**Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。**它是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依赖,打包在一个文件(image文件)里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
Docker 的主要用途,目前有三大类。
**提供一次性的环境。**比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
**提供弹性的云服务。**因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
**组建微服务架构。**通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
文档链接: https://docs.docker.com/engine/install/ubuntu/
文档链接: https://docs.docker.com/docker-for-windows/install/
参考文档: https://docs.docker.com
**Docker 把应用程序及其依赖,打包在 image 文件里面。**只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。
菜鸟教程
使用man
# simple help man docker # complex docker [CMD] --help百度
该操作不是必要的 在docker run中可以附加该操作
docker image pull library/hello-worldlibrary是Docker Hub的官方镜像站
学会使用 image 文件以后,接下来的问题就是,如何可以生成 image 文件?如果你要推广自己的软件,势必要自己制作 image 文件。
这就需要用到 Dockerfile 文件。它是一个文本文件,用来配置 image。Docker 根据 该文件生成二进制的 image 文件。
假设项目文件夹为./pro
准备Docker中运行的软件的实体, 可使用git下载,保存在./pro中
编写./pro/dockerignore文本文件 文件中提到的文件夹不会包含到app文件夹中
编写./pro/Dockerfile文件, 主要有以下几项(以下是一个示例文件)
# # FROM 继承官方的IMAGE文件, 冒号表示标签 FROM node: 8.4 # # COPY 将当前目录中的所有文件(除去被排除的文件), 都复制到iamge下的/app目录 COPY . /app # # WORKDIR 指定工作文件夹 WORKDIR /app # # RUN指令(可以有多个) 指定在image build时的动作 RUN npm install --registry=htpps://registry.npm.taobao.org # # EXPOSE 暴露端口, 允许外部连接 EXPOSE 3000 # # CMD 定义运行后动作 CMD /bin/bash登录
docker login为本地的 image 标注用户名和版本
docker image tag [imageName] [username]/[repository]:[tag]发布image文件
docker image push [username]/[repository]:[tag]查看发布的image文件
# 登录 hub.docker.com,就可以看到已经发布的 image 文件。