云计算之 docker 01 基础操作01

# 1. Docker介绍

## 1.1 什么是容器?
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。Docker是容器的一种,还有其他容器,比如 CoreOS  rkt

## 1.2 容器的前世今生
FreeBASE jail ------> Linux vserver
chroot ----> 提供了完整的根文件系统(FHS)标准的
namespaces ----> 提供了UTS、 Mount、 IPC、 PID、 user、 network隔离
cgroup ----> 负责 资源的分配和监控

以前只是开发了以上三种功能,调用的时候,还是需要自己写代码。

通过比较复杂的代码开发的过程,调用以上三项技术

实现容器的创建 ----> 管理 ----> 销毁

## 1.3 传统虚拟化技术和容器对比

## 1.4 容器的今生?
实现隔离能力!
LXC (LinuxContainer)
对于原有的常用功能进行了封装,方便我们做容器的生命周期

在移植到其他地方,还需要将原来的步骤,再运行一遍,仅仅是简化了容器的一个管理过程。
----> Docker (dotcloud) 用go语言开发的,非常接近C语言的一种轻量级开发语言。
在LXC的基础上,加了一种镜像的技术。

# 2. Docker的安装

## 2.0 yum源准备
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache fast

## 2.1 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
yum list docker-ce.x86_64 --showduplicates |sort -r

## 2.2 安装docker-ce
yum -y install docker-ce
## 2.3 启动Docker服务
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
docker version
docker info

2.4、配置镜像加速器(2020-07-13)
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

mkdir -p /etc/docker
登录你的阿里云,开启,容器镜像服务(设置一个密码),,选择,镜像加速器,再选择Centos





vim /etc/docker/daemon.json

{

"registry-mirrors": ["https://n8i4h3lp.mirror.aliyuncs.com"]

}


或者:

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://uoggbpok.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload
systemctl restart docker

# 3. Docker体系结构



Registry:提供了3种功能:
1、用户验证,有一些镜像需要用户名和密码。
2、镜像索引,快速的查找。
3、镜像存储
# 4. Docker的镜像基础管理
## 4.1 获取镜像
基础镜像拉取
docker search centos
docker pull centos:6.9
docker pull centos:7.5.1804
docker pull nginx

## 4.2 镜像基本查看

[root@docker ~]# docker image ls ----- docker images


标识镜像唯一性的方法
1. REPOSITORY:TAG
centos:7.5.1804
2.IMAGE ID (SHA256:64位的号码,默认只截取12位)
82f3b5f3c58

## 4.3 镜像详细信息查看

docker images --no-trunc 或者 docker image ls –no-trunc


docker image inspect ubuntu:latest #镜像名

docker image inspect 82f3b5f3c58f ##这里的镜像ID可以不用输完,只需要能独立标识出来即可。
## 4.4 只查看镜像ID
docker image ls 等同于 docker images
[root@docker /]# docker image ls -q 等同于 docker images -q

## 4.5 镜像的导入和导出
[root@docker ~]# docker image save 2622e6cca7eb(镜像ID) >/tmp/nginx.tar



[root@docker ~]# docker image rm 3556258649b2 ##删除镜像



docker image rm -f 镜像ID ##强制删除
docker image load -i /tmp/nginx.tar
##导入镜像



修改镜像名称(标签)
docker image tag 2622 nginx:latest


## 4.6 镜像的删除( -f 强制删除)
 docker image rm -f 3556258649b2
 docker image rm -f `docker image ls -q`
##删除多个镜像