目录
[1. docker介绍](#1. docker介绍)
[2. docker安装](#2. docker安装)
[3. docker基本使用](#3. docker基本使用)
[3.1 镜像下载](#3.1 镜像下载)
[3.2 操作容器](#3.2 操作容器)
前言
**虚拟机:基于主机(物理机或虚机)的多服务实例。**在该模式下,软件开发人员可以提供单个或多个物理机或虚机,同时在每个主机上运行多个服务实例。 此模式有几种不同的实现形式,其中包括:将每一个服务实例都作为一个单独的进程,或是在同一进程 中运行多个服务实例。
**Docker:基于容器的服务实例。**在这种部署模式下,每个服务实例都运行在其各自的容器中,因此也被称为操作系统级别的虚拟化机制。
使用这一模式时,用户将服务打包为容器镜像。每个容器镜像就是一个文件系统镜像,由应用和运行服 务所需的库构成。有的容器镜像还包括完整的 Linux 根文件系统,有的则更轻量。 以部署 Java 服务为例,构建的容器镜像包括 Java 运行时、Apache Tomcat 服务器、以及编译好的 Java 应用。
一旦将服务打包为容器镜像,就启动一到多个容器。通常每个物理机或虚拟主机上会运行多个容器,会用到 Kubernetes 或 Marathon 这样的集群管理工具来管理容器。 集群管理工具把主机看做资源池,根据每个容器需要的资源和每个主机上可用的资源来调度容器。 容器的优点与虚拟机类似,服务实例之间完全隔离,也能轻松监控每个容器的资源消耗 。
Docker
1. docker介绍
Docker是一种开源的容器化平台,它可以让开发者将应用程序及其所有依赖项打包到一个轻量级、可移植的容器中,并在任何地方运行这些容器,无论是在开发、测试还是生产环境中。Docker使用了Linux容器技术来实现这个功能,通过隔离进程、文件系统和网络空间等资源,使得容器内的应用程序可以独立于宿主操作系统而运行。
Docker三要素 :
- **Docker仓库:**集中存放镜像文件的场所。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。
- **Docker镜像:**一个只读的模板,其中包含了应用程序及其所有依赖项、运行时环境、库和配置文件等。( Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载 一 个已经做好的镜像来直接使用 )
- Docker容器: 指从Docker镜像创建的运行实例,它可以被启动、停止、重启、删除等。
虚拟机与容器的区别:
- **VM(VMware)**在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓 库,然后再安装应用;
- **Container(Docker容器)**在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装 应用。
2. docker安装
Docker的安装是在虚拟机上操作的,需要的请看👉 http://t.csdnimg.cn/5AVjw
旧版本的docker叫做docker或者docker-engine,如果有安装,先卸载其以及其依赖,新版本的 docker叫做docker-ce
- docker-ce(社区版,免费)
- docker-ee(专业版,收费)
1、安装必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
2、配置阿里云Docker Yum源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
**更新yum缓存:**yum makecache fast
3、安装docker-CE
yum -y install docker-ce
1)默认安装的是最新版本的稳定版
2)查看版本列表请使用如下命令:
yum list docker-ce --showduplicates | sort -r
3)如果要安装特定版本的 docker-CE 请使用如下命令格式:
yum install docker-ce-
3. docker基本使用
-
查看服务状态
systemctl status docker
-
启停服务
systemctl start docker
systemctl stop docker
systemctl restart docker
-
开机自启
systemctl enable docker
systemctl disable docker
-
查看宿主机上的镜像
docker images
3.1 镜像下载
不用科学我们下载镜像是非常慢的,所以要配置一个加速器:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
安装好之后再进行查看:
接着下载所需的镜像:
docker pull 镜像名
获取一个 centos 系统的基础镜像可以使用如下的命令:
docker pull centos (未指定版本一般会使用latest(最新的)版本)
docker pull centos:版本号 (或者直接指定版本)
下载Nginx镜像:
再次查看镜像就有东西了:
镜像基本操作:
docker rmi 镜像ID/标签
docker rmi centos
docker rmi -f centos:latest如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。
正确做法:先删除依赖该镜像的所有容器, 再来删除镜像
重新加载daemon
systemctl daemon-reload
重启docker
systemctl restart docker
搜索镜像
docker search 镜像名称
3.2 操作容器
- 容器是Docker的另一个核心概念。简单来说,容器是镜像的一个运行实例。
- 镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态
- 创建容器
docker create -it centos:latest docker create -it --name centos01 centos:latest
centos:latest即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。
另外,Docker会检查本地是否存在指定的镜像,不存在就从公有仓库下载
-it: 是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端
**--name:**指定生成的容器的名字,允许空,如果不指定会自动生成
-
查看当前的容器
docker ps
docker ps -a
-
删除容器
docker rm 容器ID
docker rm -f 容器ID
docker rm -f $(docker ps -aq) -
进入容器
docker exec -it 容器ID/容器NAME /bin/bash
docker exec -it 容器ID/容器NAME bash (简写)
docker exec -it 容器ID/容器NAME sh (简写) -
启动、停止、重启容器
docker start 容器ID|name|name:tag
docker stop 容器ID|name|name:tag
docker restart 容器ID|name|name:tag -
退出容器
退出时如果想继续运行容器:按顺序按【ctrl+p + q】
如果不想继续运行:按【ctrl+d】或输入exit