1、docker
docker是一个打包应用的工具
非常强大,能把操作系统也打在包里,进行无差别部署和运行。
所以docker也被认为是建立在操作系统上的虚拟机。
2、基本概念
镜像(image):
类似操作系统的镜像,包括一个完整可运行的系统,操作系统、基础组件、应用程序都可以打包在一个镜像中。
容器(container):
容器是某一个docker镜像的执行实例,可以启动、关闭、删除,可以理解成正一个linux系统,同一台机器上的多个container互相隔离。
3、简单使用
#安装docker(centos6.5以上)
yum install -y epel-release
yum update -y device-mapper
yum erase -y docker
yum install -y docker-io
service docker status
#从官方仓库中下载image
docker pull centos
docker pull ubuntu
#查看本地可用的image
docker images
#启动一个centos的dokcer容器,直接进入bash
docker run -it centos bash
#后台启动一个centos的dokcer容器
docke r run -d -it centos
#后台启动一个centos的dokcer容器,监听80端口,映射到容器里的8080端口
docke r run -p 80:8080 -d -it centos
#查看正在运行的docker容器
docker ps
#查看所有docker容器
docker ps -a
#在运行状态的容器里启动一个bash(进入正在运行的容器)
docker exec -it $container_id bash
#启动/关闭/重启容器
docker start/stop/restart $container_id
#删除容器
docker rm $container_id
4、创建自定义镜像,打包应用
mkdir test_image
cd test_image
#创建Dockerfile
vi Dockerfile
# 自定义image
#继承一个已有的镜像,这里用cetos作为基础
FROM centos
MAINTAINER Luo <luochongyang@yazuo.com>
#安装一些基础组件
RUN yum install -y java-1.7.0-openjdk
#把应用程序放入镜像(app1.tar.gz 事先放在同级目录下)
RUN mkdir /yazuo_apps/
ADD app1.tar.gz /yazuo_apps/
#打包镜像,镜像名为app1,版本为1.0
docker build -t app1:1.0 .
#启动镜像,并启动app1,把本机的8080端口映射到容器的8080端口
docker run -d -p 8080:8080 -it /yazuo_apps/app1/start.sh
#导出镜像(直接通过文件来分发镜像到其他机器)
docker save -o app1-1.0.image app1:1.0