Docker容器是Docker进程+镜像文件(Docker 镜像中包含了运行环境和配置)python
官方定义:Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建、发布和运行分布式应用的平台。是一个跨平台,可移植而且简单易用的容器解决方案。web
Docker是经过内核虚拟化技术(namespace及cgroups等)来提供容器的资源隔离与安全保障等,因为Docker经过操做系统层的虚拟化实现隔离,因此Docker容器在运行时,不须要相似虚拟机VM额外的操做系统开销,提升资源利用率。docker
控制组是Linux容器机制中的另一个关键组件,它负责实现资源的审计和限制。当用docker run启动一个容器时,Docker将在后台为容器建立一个独立的控制组策略集合。
它提供了不少有用的特性;以及确保各个容器能够公平地分享主机的内存、CPU、磁盘等资源;固然,更重要的是,控制组确保了当发生在容器内的资源压力不会影响到本地主机系统和其余容器。
尽管控制组不负责隔离容器之间相互访问、处理数据和进程,可是它在防止拒绝服务攻击(DDoS)方面是必不可少的。尤为是在多用户的平台(好比公有或私有的PaaS)上,控制组十分重要。例如,当某些应用容器出现异常的时候,能够保证本地系统和其余容器正常运行而不受影响。
数据库
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和建立Docker容器。编程
Docker 容器经过 Docker 镜像来建立。ubuntu
容器与镜像的关系相似于面向对象编程中的对象与类。浏览器
Docker 容许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。安全
docker run -i -t ubuntu:15.10 /bin/bash bash
-t:在新容器内指定一个伪终端或终端。服务器
-i:容许你对容器内的标准输入 (STDIN) 进行交互
能够经过运行exit命令或者使用CTRL+D来退出容器
docker stop + CONTAINER ID 命令来中止容器;
docker ps 查看正在运行的容器;
docker start 已经中止的容器,咱们可使用改命令 来启动;
docker ps -l 查询最后一次建立的容器;
docker rm 命令来删除不须要的容器(删除容器时,容器必须是中止状态);
docker restart 正在运行的容器,咱们可使用该命令来重启;
docker pull training/webapp // 载入镜像
docker run -d -P training/webapp python app.py
-d:让容器在后台运行。
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
使用 docker ps 来查看咱们正在运行的容器:
Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上。
这时咱们能够经过浏览器访问WEB应用
也能够经过 -p 参数来设置不同的端口 "docker run -d -p 5000:5000 training/webapp python app.py "容器内部的 5000 端口映射到咱们本地主机的 5000 端口上。
咱们可使用 docker images 来列出本地主机上的镜像
docker search 搜索 httpd 来寻找适合咱们的镜像
docker pull 下载镜像
当咱们从docker镜像仓库中下载的镜像不能知足咱们的需求时,咱们能够经过如下两种方式对镜像进行更改。
1)从已经建立的容器中更新镜像,而且提交这个镜像
docker tag 命令,为镜像添加一个新的标签。