docker:docker的基本了解
1.什么是docker
简单的理解:docker相当于vmvare,容器相当于多个虚拟机,vmvare上可以运行ubantu16.04的虚拟机,也可以运行centos虚拟机,还可以运行redhat虚拟机。
容器:完全隔离的环境,例如vmvare上两个虚拟机是相互隔离的。每一个虚拟机都得安装操作系统,但是容器不需要安装操作系统。容器比较轻量。如果新电脑上需要运行程序,那么就要将原来的环境和依赖都复制一份,例如将整个虚拟机复制一份,可以实现。但是要是程序运行在服务器上, 从本地往服务器上复制虚拟机比较麻烦,那么只能在服务器上重新下载需要的环境和相关的依赖包等,比较费时费力。
但是:使用docker可以将容器压缩,上传到服务器,服务器上通过docker解压缩容器,就可以直接跑,这样就提高了效率。等于就是讲这个环境和依赖都拷贝到服务器上。
2.docker的整体结构
3.docker的底层技术
4.docker的版本
ce版本:社区版 安全性低
ee版本:企业版 安全性高
5.docker的安装
6.docker的版本查看
  
7.docker的加速器设置
加速器相当于代理,加快下载官方仓库镜像的速度。
阿里云搜索docker---获取加速器地址---/etc/docker/deamon.json文件中添加加速器地址
8.docker的镜像
docker镜像是docker执行的文件,包含了运行所需要的代码和依赖库和环境和配置文件等。
镜像---创建---容器(一个或者多个)
镜像搜索
docker search ubantu 在docker的官方仓库搜索ubantu的镜像
  
镜像查看(本地)
docker images/ docker image ls
  
IMAGE ID :镜像指纹,不同的镜像指纹不同,唯一性。
TAG:版本号
CREATED:创建时间
SIZE:镜像大小
镜像下载
docker pull centos 默认下载最新的镜像
  
有时候:会出现需要登录docker官网的情况
  
  
  原因是:因为仓库中没有找到对应名字的镜像。
  
镜像删除
docker rmi hello-world
  
docker ps -a 查看所有容器
  
docker rm e8906e86e57 删除指定id的容器
  
  删除了容器中的镜像,在执行镜像删除,就能顺利的删除镜像了。也可以用docker rmi -f hello-world 强制性删除带有容器的镜像
删除进行还可以用IMAGE ID 进行删除,语法是 docker rmi imge id
镜像保存
docker save IMAGE 将本地的一个或多个镜像打包成tar文件(输出到stdout)
docker save 镜像名称 将本地的一个或多个镜像打包成tar文件(输出到stdout)
docker save xx/ubantu > ubantu.tar
将ubantu镜像导到桌面
  
镜像导入
docker load -i xx.tar 指定文件进行加载导入
删除本地原有的xx/ubantu,将桌面的xx/ubantu导入到docker镜像中
  
镜像重命名
docker tag disuzf/ubantu demo/ubantu:18.04 重命名是增加了一个引用,变量名改变了而已
  
镜像详细信息
docker inspect disuzf/ubantu
  
镜像的历史信息
docker history xxx/ubantu
9.docker 容器
容器:轻量级,可移植,将应用程序进行打包的技术,使应用程序在几乎任何地方以相同的方式运行
Dokcer将镜像文件运行起来,产生的对象就是容器,容器相当于是镜像运行起来的一个实例。且容器具有生命周期。
容器和虚拟机的相似点:
容器的生命周期:类似于虚拟机的(创建、运行、暂停、关闭)
容器和虚拟机都可以安装各种应用:如redis、mysql、nginx等,也就是说,在容器中的操作,如同在虚拟机(操作系统)中一样。
同虚拟机一样,容器创建后,会存储在宿主机上:linux上位于/var/lib/docker/containers下
  
容器与虚拟机的不同点:
容器不是虚拟机,只是有部分相似点而已。
虚拟机的创建、启动、关闭都是位于一个完整的操作系统,一个虚拟机就是一个完整的操作系统,而容器数运行在宿主机(就是docker)的内核上,其本质就是一系列进程的集合。
容器是轻量级的,虚拟机是重量级的,容器不需要额外的资源来管理,虚拟机需要消耗更多的资源,其次创建,启动,关闭容器就如同创建,启动,关闭进程一样的方便,但是关闭一个虚拟机(操作系统)就没有那么方便。
指定硬件上面可以运行更多数量的容器,但是运行多个虚拟机,例如电脑上运行5个ubantu,会特别卡,因为每个ubantu都给分配内存等资源,运行5个ubantu的容器,毫无压力。docker可以直接运行正虚拟机上。
  
一个docker可以运行多个容器,就行运行多个进程一样,但是一个centos必须获得足够的资源才能运行,例如内存,硬盘、网络等。多个centos一起运行,对硬件的要求很高。
容器的生命周期
  
容器的创建
docker create 容器的名称
docker create xx/ubantu
      
容器的删除
docker rm testubantu
    
容器的启动
docker create --name testubantu xxx/ubantu
docker start testubantu

docker start c4415494409e 以id的形式开启容器,显示的状态为运行状态,但是以name的形式运行,显示的是关闭状态

容器的运行
docker run disuzf/ubantu

docker run -dti disuzf/ubantu

停止运行的容器
docker stop c4415494409e

docker pause c4415494409e 暂停形式的停止

docker unpause c4415494409e 继续运行

链接正在运行的容器
docker attach ID
  
docker exec ID 在容器内容执行新的命令
10 容器与对象

docker:docker的基本了解的更多相关文章
- [Docker] docker 基础学习笔记3(共6篇)
		
首先我们安装好了ssh server之后, 我们需要将这个容器commit,然后启动这个被commit的image. 启动方式: docker run -d -p 2222:22 /usr/sbin/ ...
 - [Docker] docker 基础学习笔记1(共6篇)
		
巩固一下yum: yum本身是centos自带的软件,可以删掉然后再重新安装. yum本身可以配置yum源,网络的,本地的都可以.之后安装docker需要配置一个扩展源. 从163的网址里边下载好 ...
 - Docker - Docker国内镜像的配置及使用
		
Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...
 - Docker - Docker基础命令及使用
		
Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 Docker基础命令 Docker 查看帮助信息:docker --help 查看 ...
 - Docker - Docker基础讲义
		
Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 虚拟化技术 硬件级虚拟化(hardware-level-virtualizatio ...
 - 菜鸟系列docker——docker镜像下(5)
		
1. docker镜像构建 该章节主要介绍2种构建docker镜像的方式.当然,当前基本上需要的基础镜像都有,直接使用即可.例如数据库.中间件之类的,只需要拿来使用即可,但是依然存在需要开发者构建镜像 ...
 - 菜鸟系列docker——docker镜像中(4)
		
docker镜像命令 该章节主要介绍docker image相关命令实践操作,建议都一起跑一边 1. docker images 列举本机docker镜像 [centos@jiliguo docker ...
 - 菜鸟系列docker——docker镜像上(3)
		
1. 镜像image 镜像和容器的关系就和安装包和程序的关系一样,有了镜像才可以启动容器,容器是镜像的一个运行实例. 1.1 镜像的结构 通过第二节仓库,可能很多看官已经查看到镜像是分层的,接下来将对 ...
 - Docker - Docker与Vagrant的区别
		
Docker Docker - HomePage Wiki - Docker Docker简介 Overview Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协 ...
 - [转帖]Docker里运行Docker docker in docker(dind)
		
Docker里运行Docker docker in docker(dind) http://www.wantchalk.com/c/devops/docker/2017/05/24/docker-in ...
 
随机推荐
- C#[WinForm]实现自动更新
			
C#[WinForm]实现自动更新 winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个 ...
 - 微信小程序接口封装
			
看到个不错的总结,如下 https://blog.csdn.net/weixin_42270487/article/details/84868443 https://kuangpf.com/mpvue ...
 - (转)CentOS7下解决ifconfig command not found的办法
			
转:https://blog.csdn.net/ryu2003/article/details/78492127 注:本办法仅限于可联网的机器,即在安装时设置了IP地址和DNS可正常上网. 解决办法如 ...
 - CycleGAN --- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
			
文章地址:http://openaccess.thecvf.com/content_ICCV_2017/papers/Zhu_Unpaired_Image-To-Image_Translation_I ...
 - import的项目结构不对
			
问题如下,在我们新导入一个maven项目时,碰到这样的目录结构,总有点别扭,而且在运行Tomcat的时候,突然发现build i选项下面少了两个我们经常使用的两个选项 window --Perspe ...
 - python脚本-上传apk至蒲公英
			
import requests import os #账号配置信息 url = "https://upload.pgyer.com/apiv1/app/upload" uKey = ...
 - php中的构造函数与析构函数
			
PHP面向对象——构造函数.析构函数 __construct.__destruct__construct 构造方法,当一个对象创建时调用此方法,使用此方法的好处是:可以使构造方法有一个独一无二的名称, ...
 - EXE的32位或64位判断
			
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC> dumpbin /headers "Program.exe" ...
 - Maven入门学习 (一)
			
学习Java 的同学就一定会学习Maven, 那么Maven为什么会得到大量用户的使用呢?它是用来干什么的呢 ?接下来就来介绍 Q:Maven的作用? (1)Maven可以自动化构建项目,可以从清理. ...
 - 关于public private protected访问修饰符
			
这个似乎都是老生常谈了,特别是找工作第一轮笔试的时候很爱考这些,再罗列一次,特别要注意继承的情况: 默认状态:即是不加修饰符的时候,所谓的default状态,在类内部可以被访问,在相同的包下面 ...