Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
在宿主机的操作系统上,有一个 Docker 服务在运行(或者称为“Docker 引擎”),在此服务上,我们可开启多个 Docker 容器,而每个 Docker 容器中可运行自己所需的应用程序,Docker 容器之间也是相互隔离的,同样地,都是占用的宿主机的硬件与网络资源。
Docker 容器相对于虚拟机而言,除了在技术实现上完全不一样以外,启动速度较虚拟机而言有本质的飞跃,启动一个容器只在眨眼瞬间。
Docker的应用场景:
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器,Docker 容器通过 Docker 镜像来创建。
Docker 安装:在Linux系统下,yum -y install docker
Docker 启动:service docker start
容器的使用
1、使用 docker run 命令来在容器内运行一个应用程序:
docker run ubuntu:15.10 /bin/echo “Hello world”
2、通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力
docker run -i -t ubuntu:15.10 /bin/bash
3、使用以下命令创建一个以进程方式运行的容器(后台运行)
docker run -d ubuntu:15.10 /bin/sh -c “while true; do echo hello world; sleep 1; done”
4、查看运行的容器
docker ps
5、查看容器内的标准输出
docker logs -f 2b1b7a428627
6、停止容器
docker stop 2b1b7a428627
7、通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。
8、在docker容器中运行一个 Python Flask 应用来运行一个web应用
docker run -d -P training/webapp python app.py
-P:将容器内部使用的网络端口映射到我们使用的主机上。
-p 标识来绑定指定端口。例:-p 5000:5000
9、查看容器端口的映射情况
docker port 7a38a1ad55c6
10、查看容器内部运行的进程
docker top determined_swanson
11、查看Docker的底层信息
docker inspect determined_swanson
12、删除不需要的容器
docker rm determined_swanson
镜像的使用
13、列出本地主机上的镜像
docker images
14、获取一个新的镜像
docker pull ubuntu:13.10
15、查找镜像
docker search httpd
16、更新镜像
创建一个容器:docker run -t -i ubuntu:15.10 /bin/bash
在运行的容器内使用yum 命令进行更新。
在完成操作之后,输入 exit命令来退出这个容器。
docker commit -m=“has update” -a=“youj” e218edb10161 licuancan/ubuntu:v2
-m:提交的描述信息
-a:指定镜像作者
e218edb10161:容器ID
liucancan/ubuntu:v2:指定要创建的目标镜像名
17、构建镜像
构建镜像需要自己创建Dockerfile文件,就不介绍了。命令为: docker build。