传统虚拟化
传统虚拟化步骤
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

docker概述与安装及运行容器的更多相关文章

  1. 1、Docker概述与安装

    1.Docker概述 原文地址:https://docs.docker-cn.com/engine/docker-overview/#docker-engine Docker是一个开发,集装,运行应用 ...

  2. docker概述和安装及基本操作

    一:概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用 ...

  3. docker概述和安装

    一:概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用 ...

  4. docker(ubuntu)中安装cron运行crontab定时任务

    1.安装cron apt-get install cron 设置crontab定时任务 crontab -e */ * * * * /usr/bin/python /python/asch-check ...

  5. centos7下安装docker(8.1运行容器)

    从今天开始学习docker container 1.docker run 之前我们在学习制作镜像以及制作私有仓库的时候已经用到docker run -it以及docker run -d来临时运行一个容 ...

  6. Docker详细介绍安装与镜像制作和拉取

    一.Docker是什么? 产生背景: 开发和运维之间因为环境不同和导致的矛盾(不同的操作系统.软件环境.应用配置等)DevOps 代码.系统.环境.配置等封装成镜像Image--->运维: 集群 ...

  7. Java篇:Docker的介绍安装 和常用命令

    文章目录 为什么 出现docker Docker的简介 容器(Container) 镜像(Image) 仓库(Repository) Docker的安装 查看容器 删除镜像 删除容器 部署应用 以my ...

  8. Docker stop停止/remove删除所有容器

    原文地址:https://blog.csdn.net/superdangbo/article/details/78688904 docker ps // 查看所有正在运行容器$ docker stop ...

  9. docker 运行容器,安装Nginx

    ########################################## #运行容器 #安装Nginx #搜索.下载镜像 docker search nginx docker pull n ...

随机推荐

  1. Java-java.lang.NoClassDefFoundError:brave.Span.Kind

    今天在升级某个框架时,遇到如标题描述的问题.这个问题应该说还是比较明显的,首先去搜了一下NoClassDefFoundError的问题,参考这篇博客:https://www.cnblogs.com/x ...

  2. 各种条码的校验码算法(EAN13,COD128,GTIN,UCC等)

    校验码是由编码方案决定的,所以在代码中是否使用校验码和条码基本无关,但商品条码除外.今天给大家介绍几种校验码的计算方法. 一.商品条码: 商品条码中需要计算校验码的有:EAN-8(8位),EAN-13 ...

  3. Linux学习笔记之目录配置

    一.目录配置 相关目录说明 /bin              二进制文件 /boot           系统启动文件(内核的初始化文件等) /dev            设备文件(硬盘等) /e ...

  4. 更好的在 Git 项目中保存大文件(Git LFS 的使用)

    珠玉在前, 大家可以参考 Git LFS的使用 - 简书 为什么要用 Git LFS 原有的 Git 是文本层面的版本控制, 为代码这种小文件设计的, 保存大文件会导致 repo 非常臃肿, push ...

  5. altium designer设置不会产生.pcbpreview、.schpreview等的垃圾文件

    使用altium的是时候发现只要打开pcb或者原理图的时候就会生成一些垃圾文件,删除后再次打开还是会自动生成这些东西,对于我这样有些许洁癖的人没很是难以忍受的.那么怎么把它删除呢.其实通过字面的意思就 ...

  6. 51nod 1714:B君的游戏(博弈 sg打表)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1714 nim游戏的一个变形,需要打出sg函数的表 #incl ...

  7. DELPHI 10 SEATTLE 在OSX上安装PASERVER

    旧版本的DELPHI在安装目录下里的PASERVER目录有安装文件,但奇怪在这个SEATTLE上的PASERVER目录下只有一个EXE程序的安装程序​​,显然不能安装到OSX里,需要在Embarcad ...

  8. springboot2集成redis5报错:io.lettuce.core.RedisException: io.lettuce.core.RedisConnectionException: DENIED Redis is running in protected

    报错信息如下: Caused by: io.lettuce.core.RedisException: io.lettuce.core.RedisConnectionException: DENIED ...

  9. dumpsys, traceView调试命令

    1. dumpsys dumpsys cpuinfo: 打印cpu使用情况: dumpsys meminfo: 打印内存使用率情况: dumpsys activity: 打印所有活动的信息: dump ...

  10. Acunetix Web Vulnerability Scanner(WVS)(Acunetix网络漏洞扫描器)

    Acunetix网络漏洞扫描软件检测您网络的安全性安全测试工具Acunetix Web Vulnerability Scanner(WVS) (Acunetix网络漏洞扫描器)技术 网络应用安全扫描技 ...