*注:部分内容来自于网络摘取
懒得排版,凑合看吧
基于
Linux centos 7
Docker version 1.12.6*
什么是docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker的特性
交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell
文件系统隔离:每个进程容器运行在完全独立的根文件系统里
写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间
资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源
网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和IP地址
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置
docker的原理
docker是一个容器引擎,容器就要求对进程空间、用户空间、网络空间、硬盘空间等等做一些隔离,docker的底层是使用LXC实现的,LXC则使用Linux Namespace技术对各种技术做隔离。
Linux Namespace是Linux提供的一种内核级别环境隔离的方法, 隔离的资源包括:Mount、UTS、IPC、PID、Network、User。
docker的基本构成
**Docker 镜像(Images): 镜像是用于创建 Docker 容器的模板。是一个只读模板,用来运行Docker容器。
Docker 容器(Container) :容器是独立运行的一个或一组应用。负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。
DockerFile:是文件指令集,用来说明如何自动创建Docker镜像。**
Docker 客户端(Client) 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。
Docker 主机(Host)
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker 仓库(Registry)
Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
Docker Machine
Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。
Docker 的安装
安装就不多说了,傻瓜式安装步骤如下:
1、 安装环境 : centOS 7 64位
2、 运行 uname -r
查看当前系统内核
3、 可选运行 yum update
进行 yum的更新
4、 安装docker 运行 yum install docker
5、 安装完毕后,运行 docker info
查看docker信息,在启动后执行
6、 运行 docker –version
查看docker版本
7、 运行 service docker start
启动服务
8、 运行 chkconfig docker on
设置开机启动
运行Docker
安装完毕了,那开始运行喽
先看看这三个操作docker服务的命令吧
service docker start #启动docker服务
service docker stop # 停止docker服务
service docker restart # 重新启动docker 服务
好了,服务起来了?
接下来,看看docker 的版本信息吧
运行 docker –version
[root@bogon myevn]# docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 13
Server Version: 1.12.6
Storage Driver: devicemapper
Pool Name: docker-8:3-136136012-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 891.9 MB
Data Space Total: 107.4 GB
Data Space Available: 45.46 GB
Metadata Space Used: 1.675 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.146 GB
Thin Pool Minimum Free Space: 10.74 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
Volume: local
Network: overlay bridge null host
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Security Options: seccomp selinux
Kernel Version: 3.10.0-514.21.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 2
CPUs: 2
Total Memory: 2.765 GiB
Name: bogon
ID: G276:IK5Z:5U2N:4DCW:ISYK:DVQE:XQM7:NTEA:4BAX:UACX:YV5P:V2YM
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug