• docker——入门介绍、组件介绍、安装与启动、镜像相关命令、容器相关命令、应用部署



    一、入门介绍

    什么是虚拟化

    ​ 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

    ​ 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用

    ​ 虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等

    名词解释

    -kvm,vmware   装在服务器上,虚拟化出一个个的机器(虚拟机),机器上可以装操作系统
    -openstack   例如:阿里飞天   可以轻松管理虚拟器,通过图形化界面点击操作,完成创建释放虚拟机
    
    -docker 容器技术
    -k8s  多机容器管理(多机容器编排)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    什么是Docker

    Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护
    Docker 的基础是 Linux 容器(LXC)等技术
    用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单:把docker容器当成一个虚拟机装了一个操作系统

    docker的优点

    • 轻量级
    • 统一环境
    • 可以快速扩展到多台机器

    容器与虚拟机比较

    docker 没有操作系统一层,更快,更轻量级


    二、组件介绍

    在这里插入图片描述
    docker 是cs架构:数据通信使用http协议的resful

    • 服务端:docker 主进程,负责接受docker 客户端传过来的命令
    • Images:重点,镜像,一堆文件:当成虚拟机上装的操作系统的iso文件(操作系统+某个软件)
    • Containers:重点:容器,运行的:当成在虚拟机上装了操作系统后开机了(centos系统,centos+redis)
    • 网络:网络模式,容器间通信,容器跟宿主机通信
    • Volumes:数据卷,存放容器中软件,文件的地方
    • Registry:远程仓库,镜像是从远程仓库下载下来的

    三、安装与启动

    安装docker所需依赖

    yum install -y yum-utils device-mapper-persistent-data lvm2

    换yum源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    安装docker

    yum install docker-ce -y

    查看docker版本

    docker -v 具体信息为docker发布的年月

    启动docker

    systemctl start docker

    关闭docker

    systemctl stop docker

    docker开机启动

    systemctl enable docker

    查看docker详细信息

    docker info


    四、镜像相关命令

    镜像加速

    官方教程:
    阿里镜像加速文档

    1. 安装/升级Docker客户端
    推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce
    
    2. 配置镜像加速器
    针对Docker客户端版本大于 1.10.0 的用户
    
    您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
    
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["阿里提供的加速镜像地址"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    #1  下载镜像  
    # docker pull下载
    #centos:centos7  镜像名字:版本/tag
    docker pull centos:centos7
    docker pull  redis  # 默认下最新的latest
    
    # 2 查找镜像---》是否是官方,点赞数大小
    	-方式一网址搜:https://hub.docker.com/
        -方式二: docker search centos
    
    # 3 查看本地镜像
    docker images
    
    # 4 镜像删除
    docker rmi 镜像名字:tag/镜像id
    
    # 5 一次性删除所有镜像
    docker rmi `docker images -q`
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    五、容器相关命令

    # 1 查看正在运行的容器
    docker ps
    # 2 查看所有容器,无论停止还是运行
    docker ps -a
    
    # 3 创建容器并启动(创建容器,运行容器)
    docker run -id --name=mycentos -v 宿主机路径:容器路径 -p 宿主机端口:容器端口
    -i:表示运行容器 镜像名字:tag
    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
    -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
    
    
    --name :为创建的容器命名。
    -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    
    -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    六、应用部署

    部署mysql

    docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysqlmy -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    
    • 1

    部署redis

    docker run -di --name=myredis5 -v /root/lqz/redis.conf:/data/redis.conf   -p 6379:6379 redis redis-server /data/redis.conf
    
    vim redis.conf
    
    # redis.conf配置内容
    bind 0.0.0.0
    daemonize no
    protected-mode no
    requirepass 123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行nginx

    docker run -di --name=mynginx -p 80:80 nginx
    
    • 1
  • 相关阅读:
    计算机毕业设计小程序点餐|外卖|餐饮系统+后台SSM
    HCIP练习(OSPF)
    FFmpeg:打印音/视频信息(Meta信息)
    linux的常用命令
    skywalking源码本地编译运行经验总结
    【学习笔记】指向常量的指针和常量指针
    Linux C 应用编程学习笔记——(2)文件 I/O 基础
    MindSpore导入CUDA算子
    FPGA通信—千兆网(UDP)软件设计
    C/C++变长参数
  • 原文地址:https://blog.csdn.net/kdq18486588014/article/details/126350203