Docker基础篇1:简介及安装

1、Docker简介

      Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为容器。Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序,程序之间相互隔离。

1.1、docker体系结构

Containerd:是一个简单的守护进程,使用runC管理器。向Docker Engine提供接口。
Shim:只负责管理一个容器。
runC:是一个轻量级的工具,只用来运行容器。

1.2、内部组件

【Namespaces命令空间】

Namespaces命令空间,Linux内核提供的一种对进程资源隔离的机制,例如:进程、网络、挂载点等资源。

【CGroups控制组】

CGroups控制组,Linux内核提供的一种限制进程资源的机制;例如:CPU/内存等资源;

[root@VM_190_147_centos ywadmin]# ls -l /sys/fs/cgroup
total 0
drwxr-xr-x 2 root root  0 Nov 24 12:15 blkio
lrwxrwxrwx 1 root root 11 Nov 24 12:15 cpu -> cpu,cpuacct
lrwxrwxrwx 1 root root 11 Nov 24 12:15 cpuacct -> cpu,cpuacct
drwxr-xr-x 2 root root  0 Nov 24 12:15 cpu,cpuacct
drwxr-xr-x 2 root root  0 Nov 24 12:15 cpuset
drwxr-xr-x 4 root root  0 Nov 24 12:15 devices
drwxr-xr-x 2 root root  0 Nov 24 12:15 freezer
drwxr-xr-x 2 root root  0 Nov 24 12:15 hugetlb
drwxr-xr-x 2 root root  0 Nov 24 12:15 memory
lrwxrwxrwx 1 root root 16 Nov 24 12:15 net_cls -> net_cls,net_prio
drwxr-xr-x 2 root root  0 Nov 24 12:15 net_cls,net_prio
lrwxrwxrwx 1 root root 16 Nov 24 12:15 net_prio -> net_cls,net_prio
drwxr-xr-x 2 root root  0 Nov 24 12:15 perf_event
drwxr-xr-x 2 root root  0 Nov 24 12:15 pids
drwxr-xr-x 4 root root  0 Nov 24 12:15 systemd

【UnionFS联合文件】

UnionFS联合文件系统,支持将不同位置的目录挂到同一虚拟文件系统,形成一种分层的模型。

2、yum安装docker

这里选择的是centos7.4的系统,通过yum的方式安装docker;可以参考官网yum安装dockerhttps://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1

【安装docker依赖】

[root@VM_190_147_centos ywadmin]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)
[root@VM_190_147_centos ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

【配置官方源】

[root@VM_190_147_centos ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@VM_190_147_centos ~]# ll /etc/yum.repos.d/

【安装docker】

[root@VM_190_147_centos ~]# yum install docker-ce

【启动docker】

[root@VM_190_147_centos ~]# systemctl start docker
[root@VM_190_147_centos ~]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.09.0 #yum安装是最新版本
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: #插件
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: c4446665cb9c30056f4998ed953e6d4ff22c7c39
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-693.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.796GiB
Name: VM_190_147_centos
ID: 5UPI:LZ6S:UAXZ:MEWK:THMP:BKW7:YEBP:P3RF:SDOX:IMHV:BJ4K:ONQA
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
Product License: Community Engine

3、非root安装运行docker

【非root用户安装】

[ywadmin@izbp1cuudwu6dx6oewil61z ~]$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
[ywadmin@izbp1cuudwu6dx6oewil61z ~]$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[ywadmin@izbp1cuudwu6dx6oewil61z ~]$ sudo yum install docker-ce
[ywadmin@izbp1cuudwu6dx6oewil61z ~]$ yum list docker-ce --showduplicates | sort -r
[ywadmin@izbp1cuudwu6dx6oewil61z ~]$ sudo systemctl start docker
[ywadmin@izbp1cuudwu6dx6oewil61z ~]$ sudo docker version 

【非root用户运行】

创建组docker,把已有用户ywadmin加入到docker组中。
[root@izbp1cuudwu6dx6oewil61z ~]# groupadd docker
groupadd: group 'docker' already exists
[root@izbp1cuudwu6dx6oewil61z ~]# usermod -aG docker ywadmin
#-a参数表示把用户加入到组中,-G表示组docker中添加新名单ywadmin

#设置开机启动
[root@izbp1cuudwu6dx6oewil61z ~]# systemctl enable docker.service
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

猜你喜欢

转载自blog.csdn.net/u013089490/article/details/84625438