二、Docker概述
==========
1、含义:
Docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。
2、虚拟机与容器的区别
VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用;
Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应用。
3、Docker三要素
①、Docker镜像
Docker 镜像就是一个只读的模板。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。
镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
②、Docker仓库
仓库是集中存放镜像文件的场所。
有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的
标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。
当然,用户也可以在本地网络内创建一个私有仓库。
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
③、Docker容器
Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境
2. 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容
3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构
三、Docker安装
==========
Docker支持运行CentOS版本:CentOS 7.X
内核版本检查: uname -r
卸载可能存在的旧版本:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
旧版本的docker叫做docker或者docker-engine,如果有安装,先卸载其以及其依赖,新版本的
docker叫做docker-ce
**docker-ce(社区版,免费)
docker-ee(专业版,收费)**
安装必要的系统工具: yum install -y yum-utils device-mapper-persistent-data lvm2
选其中任意一个执行就行,没什么区别:
添加docker-ce安装源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
配置阿里云Docker Yum源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存: yum makecache fast
若出现yml.pid占用,则执行以下语句:
– rm -f /var/run/yum.pid
安装docker-CE: yum -y install docker-ce
1)默认安装的是最新版本的稳定版
2)查看版本列表请使用如下命令:
yum list docker-ce --showduplicates | sort -r
3)如果要安装特定版本的docker-CE请使用如下命令格式:
yum install docker-ce-
四、Docker基本使用
============
1、基本使用
查看服务状态:systemctl status docker
启动服务:systemctl start docker
停止服务:
必看视频!获取2024年最新Java开发全套学习资料 备注Java
systemctl stop docker
重启服务:systemctl restart docker
开机自启(默认):systemctl enable docker
开机不启:systemctl disable docker
2、仓库+镜像
Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下载
(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库
①、配置阿里云加速地址
登录阿里云服务,选择控制台:
点击左边的三横杠,搜索镜像:
选择镜像加速器,复制地址:
vi /etc/docker/daemon.json
{
“registry-mirrors”:[“你的阿里云专属加速器地址(https://43b6mr77.mirror.aliyuncs.com)”]
}
根据此路劲找到文件双击:
重新加载daemon:systemctl daemon-reload
**重启docker:**systemctl restart docker
启动成功:
搜索镜像:docker search 镜像名称
下载镜像:
docker pull 镜像名
获取一个 centos 系统的基础镜像可以使用如下的命令:
docker pull centos (未指定版本一般会使用latest(最新的)版本)
docker pull centos:版本号 (或者直接指定版本)
查看宿主机上的镜像:
docker images
查看image位置
cd /var/lib/docker/containers (/var/lib/docker为docker默认安装目录) && ll
删除镜像:
docker rmi 镜像ID/标签↓
docker rmi centos
docker rmi -f centos:latest
如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。
正确做法:先删除依赖该镜像的所有容器, 再来删除镜像
2、容器
**容器是Docker的另一个核心概念。简单来说,容器是镜像的一个运行实例。
镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态.**
①、创建容器
docker create -it centos:latest
docker create -it --name centos01 centos:latest
centos:latest 即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否存在指定的镜像,
不存在就从公有仓库下载
最后
Java架构进阶面试及知识点文档笔记
这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理
Java分布式高级面试问题解析文档
其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!
互联网Java程序员面试必备问题解析及文档学习笔记
Java架构进阶视频解析合集
外,Docker会检查本地是否存在指定的镜像,
不存在就从公有仓库下载
最后
Java架构进阶面试及知识点文档笔记
这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理
[外链图片转存中…(img-9siwOTn2-1716407800946)]
Java分布式高级面试问题解析文档
其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!
[外链图片转存中…(img-GXrZ4qba-1716407800946)]
互联网Java程序员面试必备问题解析及文档学习笔记
[外链图片转存中…(img-aGwOJhrj-1716407800947)]
Java架构进阶视频解析合集