一、容器docter
1、概要
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2、应用场景
-
Web 应用的自动化打包和发布。
-
自动化测试和持续集成、发布。
-
在服务型环境中部署和调整数据库或其他的后台应用。
-
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
3、使用
3.1、docker允许在容器内运行应用程序
runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world" Hello world
参数解析:
-
run: 与前面的 docker 组合来运行一个容器。
-
ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
-
/bin/echo "Hello world": 在启动的容器里执行的命令
3.2、获取镜像
3.2.1、加载镜像
docker pull ubuntu
3.2.2、尝试加载windows镜像
3.2.2、列出本机上的镜像
runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B training/webapp latest 6fae60ef3446 11 months ago 348.8 MB
各个选项说明:
-
REPOSITORY:表示镜像的仓库源
-
TAG:镜像的标签
-
IMAGE ID:镜像ID
-
CREATED:镜像创建时间
-
SIZE:镜像大小
3.3、启动容器
$ docker run -it ubuntu /bin/bash
参数说明:
- -i: 交互式操作。
- -t: 终端。
- ubuntu: ubuntu 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
4、容器与虚拟机
4.1、doctor在各平台的运行机制
LINUX:docker在linux上共享内核,无需虚拟化,完全支持native功能。所以只能创建linux类docker。
Windows:docker在windows上,启用Hyper-V或者虚拟化技术(通过虚拟机来实现,不共享windows内核)。可以创建linux类docker和Windows类docker。
Mac:docker在mac os上,同样用虚拟化技术xhyve或者virtualbox来实现,不共享mac os内核。只能创建linux类docker,不能创建Mac OSX的docker。
只要系统架构一样,是可以使用相同的镜像的,比如x86的镜像只能x86的系统使用,arm的镜像只能arm系统使用。docker镜像对容器而言只是模拟了一个环境,跟宿主机没多大关系
4.2、
标签:ago,容器,MB,虚拟机,ubuntu,镜像,docker,对比 From: https://www.cnblogs.com/Ansing/p/17381155.html