什么是docker?
是的,图片没有骗你,docker它是一应用容器引擎。 我们可以将LinuxOS(Linux操作系统)被视为多功能豪华别墅,其中许多项目和依赖环境就像别墅里的各种东西。
而docker就像帮助别墅分区和加工的泥瓦匠一样,我们可以在不同的区域(容器)包装不同的项目和依赖环境,使不同的项目环境相互隔离,并在同一台上共同运行Linux宿主机上。
接下来看看Docker整个系统模型是什么样
Docker体系模型
整个docker应用程序主要Docker客户端、Docker发动机、容器保护过程、docker镜像仓库四部分组成,对照下图
- 第一步:您必须通过客户端输入您的命令,客户端负责将您的命令传递给您docker引擎。
- 第二步:docker引擎拿到命令后,进去分析,去镜像仓库找数据科学镜像。如果在本地镜像仓库找到,直接使用;如果找不到,就得去DockerHub找到并下载到本地仓库的远端仓库。
- 第三步:Docker将镜像文件交给发动机Docker容器管理和保护过程。
- Docker根据获得的镜像文件,启动容器管理和保护过程shim启动容器管理过程runC操作镜像文件的容器。
什么是镜像,什么是容器?
镜像:
简单来说,Docker不包括镜像Linux内核的精简Linux基于操作系统UnionFS一层一层的文件系统是一个独立的、只读的、静态的模板文件。Docker镜像就像一本书,是静止的文本,你只能读它。
Docker镜像文件是分层形成的。通过将多个不同的镜像层堆叠到基本的镜像文件上,可以建立不同的操作环境,并共享相同的基本镜像文件或其他镜像文件。
* 任何一层镜像文件都是独立的,只读,静态文件模板。
容器:
可写层添加到镜像层的顶层,是镜像运行时的实体。
容器记录了文件系统的所有变化,文件系统的变化记录在容器层中,下面的镜像层只读的文件层,实际上没有变化。
容器运行的镜像环境相当于该镜像系统的所有开发环境。容器记录了对镜像文件的修改,实际的镜像文件并没有真正修改,所有的文件修改记录都丢失了。
安装Docker
-
检查环境中是否有安装docker
docker version --查看docker版本 systemctl status docker --查看docker的状态 systemctl stop docker --停止docker yum list installed |grep docker 查看yum安装的docker包 rpm -qa |grep docker 查看docker相关的ypm源文件 yum -y remove docker-cl.x86_64(根据自己的版本删除)–删除所有安装docker包
这里有个centos8的坑: - - 可能在yum undate有下列情况
[root@autocontroller ~]# yum update CentOS-8 - AppStream 70 B/s | 38 B 00:00 Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
- /etc/yum.repos.d目录中的三个文件,看看它们是否被重命名 CentOS-Base.repo CentOS-AppStream.repo CentOS-Extras.repo
- 在当前目录下运行:
[root@autocontroller ~]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@autocontroller ~]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
- 安装docker
-
sudo yum update
-
sudo yum install -y yum-utils
-
sudo yum install -y device-mapper-persistent-data lvm2
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
-
设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 所有仓库都可以查看docker安装版本并选择特定版本
$ yum list docker-ce --showduplicates | sort -r
- 安装docker
$ sudo yum install docker-ce //由于repo默认只打开中默认stable仓库,所以最新稳定版17安装在这里.12.0
- 启动并添加启动启动
$ sudo systemctl start docker $ sudo systemctl enable docker
- 验证安装是否成功(有)client和service两部分表示docker成功安装启动)
docker version
docker安装完成!
启动docker
- 查看docker状态
systemctl status docker
- 启动docker
systemctl start docker
docker安装nginx
- docker search nginx
- docker pull nginx
- docker run -d -p 8055:80 nginx
- 访问,成功启动。