1. docker
2. 虚拟机和容器的区别- ①:虚拟机借助物理机硬件进行硬件模拟,实现系统级隔离。每台虚拟机模拟硬件后,需要安装独立的操作系统,然后在操作系统上安装应用程序。容器是过程级隔离,通过虚拟化引擎在同一操作系统上隔离多个独立过程,然后在独立资源控制的过程容器中安装应用程序和依赖程序;
- ②: Docker容器启动速度快(秒级),虚拟机启动速度慢(分钟级);
- ③: Docker容器所需资源少,与操作系统核交互性能损失少;
- ④: Docker较轻,内存消耗较少,Docker在相同硬件条件下运行的镜像数量远远超过虚拟机;
- ⑤: 可快速创建和删除Docker,使用方便
缺点:①: 如果容器租户有root权限,Docker的安全性较弱,可以直接操作宿主机,可以进行无限操作;②: Docker集中管理工具还不成熟;
3. Docker的三个基本概念- Iamge 镜像: 包装容器运行所需的程序、资源、数据库和配置文件;
- Repository 仓库:镜像存储位置,镜像构建完成后,可以很容易地在当前的宿主机上运行,但是,如果我们需要在其他服务器上使用这个镜像,我们需要一个集中的存储和分发服务,DockerRegistry 就是这样的服务。一个 Docker Registry 可以有多个仓库(Repository),每个仓库都可以包含多个标签(Tag),每个标签都是镜像。
- Container 容器:
- 镜像和容器之间的关系就像类和对象之间的关系。同一个镜像运行多次会得到多个容器实例。容器是镜像运行的实体,可以创建、启动、停止、删除、暂停等。容器的本质是过程,但不同于宿主的过程。容器有自己独立的命名空间,所以容器有自己的root 文件系统,自己的网络配置,自己的过程空间,甚至自己的用户 ID空间。容器中的过程是在一个孤立的环境中运行,就像在一个独立于宿主的系统下运行一样。请注意,在容器被删除后,容器存储层中保存的任何信息都不会被保存,它与容器的生命周期相同,因此需要保存的任何数据都不会被保存 建议保存在数据卷中(Volumes)或者在宿主机目录中,数据不会随着容器的消失而消失。
安装环境准备和安装步骤
①检测Centos7内核版本
②如果版本太低,建议使用 yum update 更新
③更新后,再次检测内核系统是否符合要求
④旧版本的docker卸载已安装的docker
yum remove docker-*
⑤安装所需的软件包, yum-util 提供yum-config-另外两个是devicemaper驱动依赖的manager功能
yum install -y yum-utils device-mapper-persistent-data lvm2
⑥安装docker的yum源官方镜像地址:
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 makecache fast
⑧查看可安装的docker版本
yum list docker-ce --showduplicates | sort -r
⑨安装docker ,最新版本的docker安装在centos7.4操作系统上
yum install docker-ce-18.03.1.ce-1.el7.centos
⑩启动并设置启动启动
systemctl start dockersystemctl enable dockerSystemctl status dockerSystemctl stop docker
11检测安装是否成功
docker version
5. 常用的Docker命令(1)与镜像相关的命令①查看镜像: 查看当地已存在的镜像
docker images
或者 docker image list
②搜索镜像: 在互联网上查看docker镜像
docker search image_name
③拉取镜像
docker pull image_name:版本编号
如果在拉取镜像时没有指定具体的版本代码,默认情况下会拉取最新版本,建议使用hub.docker网站搜索查看相关镜像的具体版本,并通过指定的具体版本拉取您需要的镜像
④删除镜像]
docker rmi image_iddocker rmi `docker images -q` 删除所有镜像
(2)与容器相关的命令①查看容器: 检查当前正在运行的容器
docker ps
容器是通过镜像创建的,一个镜像可以创建许多容器docker ps -a 查看所有容器(包括启动和非启动容器)
②创建容器
docker run [参数选项] image [command]
可选参数选项可通过 docker run --help
进行查看
③启动容器
- 启动伪终端模式
docker run -it --name=自定义容器名称 image-name:tag /bin/bash
- 启动后台过程
docker run -id --name=自定义容器名 image_name:tag
docker容器使用以下命令进入后台启动
docker exec -it 自定义容器名称 /bin/bash
④停止容器,重新启动容器
docker stop iddocker的容器名或iddock start 容器名称或id
⑤总结docker常用命令
复制文件
docker cp 本地文件路径中源文件 容器名:/容器中的目标路径 (从宿主机到容器)
或者
docker cp 容器名称:/文件路径 /宿主机路径 (从容器复制到宿主机)
挂载容器目录
docker run -id --name=自定义容器名称 -v 宿主机目录:容器中的目录 image_name:tag
docker inspect 容器名称或容器id
查看容器配置信息(基本配置信息) 挂载信息 图形驱动信息 网络信息等))
删除容器: docker rm 容器名称或id
配置容器IP地址①. 创建自定义网络
docker network create --subnet=172.20.0.1/24 docker-br0
--subnet: docker-br0表示在容器中创建的子网络的网段 : 表示容器网桥的名称②. 创建网桥后,可以使用ifconfig命令检测ifconfig③. 如果不使用该网桥,可以删除
docker network rm docker-br-9a740c9440a3
④. 选择任何IP地址作为您自定义的网段,以启动容器IP
docker run -id --net docker-br0 --ip 172.20.0.11 --name=mycentos_1 centos:7.4.1708
⑤. 使用docker exec -it 容器名 /bin/bash 使用已启动的容器进入启动的容器 yum install net-tools 下载 iptables 然后用ifconfig查看容器ipip
⑥. 测试本机和容器是否ping通过
⑦. 重复执行④⑤⑥三步操作重新操作一个容器