概念
-
image
镜像,里面包含了静态文件(APP源代码,runtime, 库,配置文件,环境变量) -
container
运行镜像时的一个实例进程
镜像就像一个编译好的 C 可执行文件。双击文件时,系统创建一个进程;再次双击时,系统创建第二个进程。
docker 通过镜像创建容器,容器通过和系统内核交互获得所需系统资源(内存,CPU,网络),并和系统的其他部分隔离。
容器比虚拟机更轻
容器和虚拟化没有关系,而是应该被称为容器化;它和虚拟机的相识之处在于环境隔离
- 容器直接通过系统内核获取运行 APP 所需的系统资源,并与其他的其他部分相互隔离
- 对于虚拟机,它需要一整套虚拟硬件来运行 OS,然后再运行 APP;虚拟OS调用物理资源的指令需要通过 虚拟层(Hypervisor) 进行转换
搭建 Docker 环境
https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1
版本:
- 开发测试:
Docker CE
- Docker Community Edition - 生产环境:
Docker EE
- Docker Enterprise Edition
要求:全新的 CentOS 7
添加软件仓库
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
安装 docker-ce
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
确认指纹
执行 docker 需要 root 权限
为了普通用户可以执行 docker,将其加入组 docker
# 将用户 admin 加入组 docker, 并重新登录 shell
[admin@localhost ~]$ sudo usermod -aG docker admin
[admin@localhost ~]$ exit
# 确认用户已加入组 docker
[admin@localhost ~]$ groups admin
admin : admin wheel docker
启动 docker
# 启动 docker
$ sudo systemctl start docker
# 开机启动docker
$ sudo systemctl enable docker
确认正确安装 Docker
docker 检测到本地没有镜像 hello-world,于是到于是到默认的公共镜像仓库 Docker Hub 获取镜像 library/hellow-world
,并运行一个容器