1.什么是Docker?
Docker是一个基于Go语言并遵从 Apache2.0 协议开源的应用容器引擎。是属于操作系统层面的虚拟化技术,由于进程都是隔离的,也称容器。
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用进程。而容器是直接运行于宿主的内核,容器没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
2.Docker基本概念
Docker有三个基本概念:镜像(image)、容器(container)、仓库。
2.1镜像
镜像是一个特殊的文件系统,除了提供容器运行时所需要的程序,库,资源,配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会改变。
镜像构建是,会一层层构建,前一层是后一层的基础。每一层构建完就不会发生改变,后一层改变只在发生在自己这一层。在构建镜像的时候需要额外小心,每一层尽量只包含该层所需要添加的东西,任何额外的东西都应该在该层构建结束前清理掉。
分层存储的特征使得镜像的复用,定制变得更为容易。可以用之情构建好的镜像作为基础层,然后进一步添加新的层,以定制自己的所需的内容,构建新的镜像。
2.2容器
镜像和容器的关系,就像Java中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以创建、启动、停止、删除、暂停等。容器也是分层存储的,以镜像为基础层,在其上创建一个当前容器的存储层,即容器存储层。容器存储层的生命周期和容器一样,容器消亡,容器存储层也随之消亡。
2.3仓库
镜像构建完成后,我们需要在其他服务器上使用这个镜像,我们就需要一个集中存储和分发镜像的的服务,Docker Register就是这样的服务。一个仓库可以包含同一个软件不同版本的镜像,而标签通常用于对应软件的各个版本。<仓库名>:<标签>的格式来指定具体哪个软件的哪个版本。如果没有标签,则latest作为默认标签。如centos:7.5。
3.安装
准备一个64位的CentOS 7,内核不低于3.10。
直接使用yun安装。sudo yum install docker-ce
启动docker
systemctl enable docker #设置开机启动
systemctl start docker
docker启动之后可以查看docker信息,版本
docker info
和docker version
测试Docker时候安装正确,我们就运行一个hello world镜像开始
docker run hello-world
若能输出信息就说明安装成功,正常情况下执行命令之后会如图这样。
##4.运行
使用docker run
来运行镜像。
5.使用DockerfIle构建镜像
最简单的实例:构建自己的nginx镜像
touch Dockerfile
vi Dockerfile
修改Dockerfile文件
FROM nginx
RUN echo '<h1>Hello, My Docker!</h1>' > /usr/share/nginx/html/index.html
保存退出文件,在当前目录执行构建指令
docker build -t june/nginx:1 .
查看时候构建成功
docker images
如图,我们构建成功了
构建成功之后,运行下,看看效果。
docker run -d -p 8081:80 june/nginx:1
执行完之后打开浏览器,是否是我们需要的效果
## 结尾
入门到此为止,更多指令和参数移步官网 。