1.什么是Docker?
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
2.准备
1.准备开始
Docker系统有两个程序:docker服务端和docker客户端。其中docker服务端是一个服务进程,管理着所有的容器。docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。大部分情况下,docker服务端和客户端运行在一台机器上。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker架构如下:
其中名词如下表所示
2.Docker的安装
安装过程请参考http://www.docker.org.cn/book/install/supported-platform-17.html
3.检查Docker是否运行
检查docker的版本,这样可以用来确认docker服务在运行并可通过客户端链接。
在命令行输入docker version
4.Docker的HelloWorld
Docker 允许你在容器内运行应用程序, 使用 docker run
命令来在容器内运行一个应用程序。
输出Hello world
各个参数解析:
- docker:Docker的二进制执行文件
- run:与前面的 docker 组合来运行一个容器。
- ubuntu:15.10:指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
- /bin/echo “Hello world”: 在启动的容器里执行的命令
以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。
5.运行交互式的容器
我们通过docker的两个参数 -i -t,让docker运行的容器实现”对话”的能力
此时我们已进入一个 ubuntu15.10系统的容器
我们尝试在容器中运行命令cat /proc/version
和ls
分别查看当前系统的版本信息和当前目录下的文件列表
各个参数解析:
- -t:在新容器内指定一个伪终端或终端。
- -i:允许你对容器内的标准输入 (STDIN) 进行交互。
我们可以通过运行exit命令或者使用CTRL+D来退出容器。
6.启动容器(后台方式)
使用以下命令创建一个以进程方式运行的容器
在输出中,我们没有看到期望的”hello world”,而是一串长字符
59dd21ee9fae6055ed8c4f7e8515ec4ca13e1af989513737adce7b0e86b4f615
这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。
首先,我们需要确认容器有在运行,可以通过 docker ps
来查看
其中:
- CONTAINER ID:容器ID
- NAMES:自动分配的容器名称
在容器内使用docker logs
命令,查看容器内的标准输出
7.停止容器
我们使用 docker stop
命令来停止容器:
###