You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
index.html
<!DOCTYPE html><htmllang="en"><head><title>home</title></head><body><nav><ul><li><ahref="/">home</a></li><li><ahref="/about.html">about</a></li></ul></nav>
home
</body></html>
home.html
<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><title>about</title></head><body><nav><ul><li><ahref="/">home</a></li><li><ahref="/about.html">about</a></li></ul></nav>
about
</body></html>
搭建的例子
docker 基本概念
image 镜像
其实就是操作系统的抽象集合,他可以是nginx 也可以是 mysql, 也可以是Ubuntu,Centos
container 容器
image快照 + 一系列部署操作的抽象集合,
如果你在运行
docker run -it --rm ubuntu /
加上了--rm
的话,利用exit 命令推出系统,快照就会立即销毁,否则docker ps -a
就会看到很对死尸线上仓库
docker 中的分层与git对比
git add .
之后的代码,属于第一个层次,也就是本地代码,git commit -am'push'
之后的代码,他们会出现在git log
里面,可以看到,commit 之后的代码,本地分支超前于线上分支git push
之后的代码,就是线上分支了.下面是分支合并图.docker中也分为 container image repository ,这三个层次和git有异曲同工之妙用,,我也曾经怀疑,git时候能替代docker,事实证明, 这完全是两个不同的东西.
repository 线上仓库了,
image 快照,这个可以代表一个个系统,实际上通过命令行,它是可以登录的,
docker run
命令详解请仔细查看下面这条的命令,此命令将会启动 Node 容器,将当前应用程序目录挂载到容器中,然后在应用程序上运行 npm install:
基础命令是 docker run � node:0.10.40,它创建一个容器实例并运行您之前拉取的 node:0.10.40 镜像。
-it 开关指定您想要一个前台交互式终端。(备用模式是分离的后台进程,可以使用 -d 指定它。)
--rm 开关指定执行清理,表示在您退出容器后,Docker 会立即删除它。如果没有指定此开关,该容器会以停止状态持久保存在磁盘上,而且您可以从中断点开始重新启动它。但是,对于忘记删除容器实例的用户而言,重新启动容器是磁盘耗尽的常见来源。如果不使用 --rm,那么任何时候都能运行以下命令来查看您遗留下了多少陈旧的停止容器(数量可能会让您吃惊):
--name lllnode 选项显式命名容器,这对在其他 Docker 命令中引用该容器很有用。如果没有显式命名容器,Docker 会为它分配一个生成的文本名称 — 这个名称通常没什么意义。您还可以通过内部 ID(一个很长、对人类不友好的十六进制字符串)来引用该容器。
-v "$PWD":/usr/src/myapp 选项创建一个卷挂载点。将您当前的工作目录 ($PWD) 挂载为容器内的 /usr/src/myapp。然后可从该容器内访问应用程序的 Node.js 源代码(或您当前的工作目录中可能拥有的其他任何 Node.js 源代码)。
-w /usr/src/myapp 选项设置您运行的命令的工作目录。在这个示例中,工作目录更改为挂载的卷。
docker run 命令末尾的 npm install 命令在工作目录上的容器内运行。最终结果是您通过容器在当前目录上运行 npm install— 而不安装 Node.js 或它的任何前提软件。
--env PORT=8011 环境变量命名
Docker的四种网络模式
如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
docker中的 run 与 attach 与 exec的区别
一个是运行,一个是hack+同步操作介入,,exec是无干扰的hack,,,docker 简直是开发神器....
docker build
与docker image build
然并无卵区别,
docker image build
根据当前文件 的Dockerfile
创建一个快照 image,Dockerfile
语法自己查官网,....docker run 命令详解
可以依据网络上的快照,也可以依据自己
docker build
创建的快照来运行容器,换句话说,本机没有的快照,就会去网络上下载一个...然后下次本机就有了,就用本机的.于是就运行了一个退出后立即销毁的容器,并且自带交互式命令行的容器.
入门操作 - 3分钟内系列
跑下面一系列最新版nginx apache, nodejs , tomcat , php , python 服务器
nginx
Dockerfiles 文件
运行命令
apache
Dockerfiles 文件
运行命令
node
Dockerfiles 文件
运行命令
tomcat
运行命令
python
不会弄...
php
不会弄...
开发环境下的共享模式
运行之后,当前目录下的文件和容器内部的环境进行了共享,本地文件修改之后,打开网页能立即看到被修改后的内容..
文件目录下
开发模式下觉得ok,可以将当前运行环境+集成操作的抽象 => 制作成image镜像,以供随时将其跑成container运行起来..
一张图讲解docker,图里面区分了docker四重境界
The text was updated successfully, but these errors were encountered: