Docker安装
Docker的基本组成
镜像(image)
Docker 镜像(image)就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建多个容器。
就好比java中的类和对象,类就是镜像,容器就是对象
容器(container)
Docker 利用容器(container)独立运行的一个或一组应用,容器是利用镜像创建的运行实例。
它可以被启动、开始、停止、删除。每个容器都是互相隔离的,保证安全的平台。
可以把容器看成是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。。。
容器的定义和镜像几乎―模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
仓库(repository)
仓库(Repository)是集中存放镜像文件的场所。
仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。
国内的公开仓库包括阿里云、网易云等
安装Docker
环境准备
1、会一点点linux基础
2、CentOs 7
3、使用 Xshell 或者 FinalShell 等其他软件连接远程服务器 进行操作
环境查看
# 系统内核是3.10以上的
[root@wulei /]# uname -r
3.10.0-514.26.2.el7.x86_64
# 系统版本
[root@wulei /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
安装
# yum 安装 gcc相关的环境
yum -y install gcc
yum -y install gcc-c++
#1、卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2、需要的安装包
yum install -y yum-utils
#3、设置镜像的仓库
# 默认是国外的,非常慢
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 我们使用国内阿里云的
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache fast
# 4、安装最新版本的Docker Engine和容器 docker-ce 社区版(建议) docker-ee 企业版
yum install docker-ce docker-ce-cli containerd.io
# 5、启动Docker
systemctl start docker
#6、使用docker version 查看是否安装成功
# 7、通过运行hello-world 映像来验证是否正确安装了Docker Engine 。
docker run hello-world
# 8、查看一下下载的 hello-world镜像
[root@wulei /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 13 months ago 13.3kB
# 卸载docker(了解)
#1、卸载Docker Engine,CLI和Containerd软件包:
yum remove docker-ce docker-ce-cli containerd.io
#2、删除镜像和目录资源
rm -rf /var/lib/docker
# /var/lib/docker docker 的默认工作路径
阿里云镜像加速
1、登录阿里云找到容器镜像服务入口
2、找到配置文件
3、配置使用
# 1、创建目录
sudo mkdir -p /etc/docker
#2、编写配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xfgd6g4v.mirror.aliyuncs.com"]
}
EOF
#3、重启服务
sudo systemctl daemon-reload
# 4、重启docker
sudo systemctl restart docker
回顾Hello-World流程
run的运行流程
底层原理
Docker是怎么工作的?
Docker是一个 Client-Server结构的系统,Docker的守护进程运行在主机上。通过Scoket从客户端访问!
DockerServer接收到Docker-Client的指令,就回去执行这个命令!
Docker为什么比虚拟机快?
1、Docker有着比虚拟机更少的抽象层。
2、Docker利用的宿主机的内核,VM需要的是Guest OS。
所以说,新建一个容器的时候,Docker不需要向虚拟机一样重新加载一个操作系统内核,避免引导,VM是加载Guest OS,分钟级别的,而我们的Docker是利用宿主机的操作系统,省略的复杂的过程,秒级启动!