一.Docker
Docker 是一个开源的应用容器引擎,主要利用 linux 内核 namespace 实现沙盒隔离,用cgroup 实现资源限制。让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。由于其基于LXC的轻量级虚拟化的特点,docker相比KVM之类最明显的特点就是启动快,资源占用小。docker能够只加载每个container变化的部分,这样资源占用小,能够在单机环境下与KVM之类的虚拟化方案相比能够更加快速和占用更少资源。隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库。Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用。和宿主机共用一部分资源,内核要求在3.10以上。
docker容器是docker镜像的实例化,docker容器开启方便,即创即用,随着要求进行删除添加。国内有很多容器云服务服务商:华为云,阿里云,时速云,腾讯云。近几年云服务是大热门,几乎各大厂商都有参与。镜像用来创建容器,是容器的只读模板,默认可以从 docker hub 上下载。docker 的镜像是增量修改,每次创建新的镜像都会在父镜像上构建一个增量的层,基于 AUFS 技术。
二.容器管理
1.docker的安装(用的rhel7.3的yum源)
下载docker以及相关依赖
yum install -y *
container-selinux-2.21-1.el7.noarch.rpm
docker-ce-18.06.1.ce-3.el7.x86_64.rpm
libsemanage-2.5-8.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm
pigz-2.3.4-1.el7.x86_64.rpm
policycoreutils-2.5-17.1.el7.x86_64.rpm
policycoreutils-python-2.5-17.1.el7.x86_64.rpm
启动docker
systemctl start docker
查看当前docker信息
[root@server6 docker]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.06.1-ce
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.7MiB
Name: server6
ID: WGDT:45ZS:F53A:2KVR:35ZJ:Z6RL:WDBZ:MGF2:2Z7O:5AET:RGWD:24UD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
2.内核要求3.10以上
[root@server6 docker]# uname -r
3.10.0-514.el7.x86_64
3.容器的基本操作
(1)导入镜像,创建容器
docker load -i 镜像的tar包
[root@server6 images]# docker load -i ubuntu.tar
56abdd66ba31: Loading layer 196.8MB/196.8MB