docker概述与安装及运行容器

北城以北 提交于 2021-02-17 02:06:11

传统虚拟化 传统虚拟化步骤 1、安装虚拟化软件以及虚拟化的管理软件 2、创建虚拟机 3、给虚拟机安装os 4、在虚拟机内部不是应用(http、db之类的应用) 传统虚拟化的特点 1、VM与VM之间是完全隔离的,并且虚拟机必须要安装os 2、应用所运行的环境是建立在操作系统之上的 3、应用迁移非常笨重 传统虚拟化已经无法满足当前敏捷开发方式,VM的方式会导致开发环境和生产环境不一致,版本测试完成之后需要重新搭建环境。 docker docker是容器的引擎工具,最主要是管理容器的生命周期,创建容器、管理容器、管理镜像等。容器是没有操作系统的概念,容器通过image来启动。当你通过一个image创建和启动一个容器的时候,容器内的进程就已经启动了。一旦容器内的process意外退出,容器也就死亡。即进程在容器在,进程毁容器亡。容器与容器之间隔离通过namespace(命名空间隔离),对于Linux操作系统而言一定存在namespace,无需另外安装。 一个完整的docker由四个部分组成: docker client客户端 docker daemon守护进程 docker image镜像 docker container容器 docker功能特性 隔离环境(系统、网络、文件系统)与应用 解决依赖与版本问题 易于分发开箱即用 节点与容器快速扩容 镜像制作简单便捷,管理方便。 隔离 通过cgroup(隔离和跟踪资源的使用)和namespace(组与组之间隔离)来实现轻量级的进程隔离。 对应容器中运行的进程来说,自己独占了一个系统。 容器间网络、文件及其他资源都互相隔离。 版本与依赖 传统模式下,多个不同环境或版本的项目需要部署在不同机器上,部署与后期维护管理复杂繁琐。 使用docker通过多个不同版本或环境的镜像,可以同时运行在一台机器上互不干扰,部署与后期维护简单方便。 分发与使用 镜像可以通过导入、导出、上传到镜像仓库等多种方式进行分发。 在启动了docker的系统上直接使用docker run即可启动镜像,无需特别配置。 扩容 容器扩容简单方便 扩容节点只需安装并启动docker即可 镜像制作 镜像的灵魂dockerfile 使用dockerfile进行指令控制 基于linux命令易于理解快速上手 易于定制与修改 应用场景 web应用的自动化打包和发布 自动化测试和持续集成、发布 应用服务,如mysql、redis等通过docker实现快速部署 k8s私有云 安装环境 系统:centos 7.4 minimal 分区: /boot xfs 500M swap 不使用 / 剩余全部 安装docker 1、安装docker作为容器的引擎工具 yum install -y docker 2、启动docker服务 systemctl enable docker systemctl start docker 3、搜索image docker通过image来创建和启动容器,image在镜像仓库内。仓库分为公有仓库(如docker.io)和私有仓库。在默认情况下docker会访问公有仓库,docker会拉取公有仓库的image。 docker search centos 搜索公有仓库中含有centos关键字的image。 4、下载image docker pull docker.io/centos pull即从公有仓库中拉取image到本地。 5、查看本地image docker images 6、启动容器 docker run -d docker.io/centos -d即后端运行 7、查看容器 docker ps dockers ps -a 没有结果即没有运行的容器,可能的原因是这个容器内没有进程。 进程来源于执行一个可执行文件。 使用docker通过一个image创建一个容器,容器内就会有进程,image内嵌入一条可执行的文件(命令)。通过这个image去创建一个容器的时候,会执行这个可执行文件,从而产生前端进程。 docker.io/centos这个image不含有可执行文件,也没有触发一个可执行文件。所以创建这个容器的时,容器立即退出了。 docker run -ti docker.io/centos /bin/bash -ti交互式运行 8、查看容器内的的进程 docker top docker top d54 d54容器短id 9、查看容器参数 docker inspect d54 10、查看容器id docker ps -q 11、查看容器日志 docker logs d54 12、删除容器 docker rm d54 如果一个容器处于running状态无法删除。 docker rm $(docker ps -qa) 13、停止容器 docker stop d54 停止后的容器可以被删除。 14、容器内的操作 yum intall -y net-tools 15、进入容器 docker exec -ti 35d /bin/bash 16、启动指定容器的参数 指定容器主机名 docker run -d -t --hostname=servera.example.com docker.io/centos 指定dns docker run -d -t --hostname=serverb.example.com --dns 8.8.8.8 --dns 4.4.4.4 docker.io/centos 指定ip docker run -d -t --hostname=serverc.example.com --dns 8.8.8.8 --dns 4.4.4.4 --ip=192.168.0.222 docker.io/centos 定义变量 docker run -d -e name=test -e MYSQL_USER=root -ti docker.io/centos /bin/bash 容器退出后自动重启容器 docker run -d --restart=always -e MYSQL_USER=root -ti docker.io/centos /bin/bash 自动重启3次失败后将不再重启 docker run -d --restart=on-failure:3-e MYSQL_USER=root -ti docker.io/centos /bin/bash 查看启动帮助 docker run --help

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!