Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker 是通过内核虚拟化技术 (namespaces及cgroups等,这里的内核技术指的是Linux内核哦)来提供容器的资源 隔离与安全保证等。由于docker通过操作系统层的虚拟化实现隔离,所以Docker容器 在运行时,不需要额外的虚拟化管理程序(VMM(Virtual Machine Monitor),以及 hyperisor)支持,他是内核级虚拟化,可以实现更高的性能,同时对资源的额外需求 很低。最本质特征docker是通过隔离来进行创建容器,而KVM等均为通过模拟方式创 建虚拟机。

  docker的优势:

    更快的交付和部署:使用docker 开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后, 测试和原味人员可以直接使用完全相同的环境来部署代码,只要开发测试过的代码, 就可以确保在生产环境无缝运行。docker可以快速创建和删除容器,实现快速迭代, 大量节约开发、测试、部署的时间;更高效的资源利用: docker 容器不需要二外的徐牛啊管理程序支持,他是内核级的虚拟化,可以实现更高 级的性能,同事对资源的额外需求很低 ;更轻松的迁移和扩展: docker容器几乎可以再任意的平台上运行,包括物理机、虚拟机、公有云、私有云、 个人电脑、服务器等,同事支持主流的操作系统发行版本。这种兼容性让用户可以再 不同平台之间轻松地迁移应用。

  docker与kvm对比:

    docker容器很快,启动和停止可以再秒级实现,而传统的虚拟机需要数分钟; docker容器对系统资源需求很少,一台主机上可以同时运行数百甚至上千个docker容器; docker 通过类似于git的设计理念的操作来方便用户获取、分发和更新应用镜像,存储 复用,增量更新; docker通过dockerfile支持灵活的自动化创建和部署机制,提高工作效率,使流程标准化。

  docker的特性:

    Docker的三大特性为BUILD(构建)、SHIP(运输)、RUN(运行)。(一次构建多处运 行,像不像JAVA呢)。docker是传统的CS架构分为docker client和docker server,主要分 为三大组件 镜像(image)、容器(container)、仓库(Repository)。

1. 安装docker

    注意:docker默认文件目录是/var/lib/docker,默认dns是宿主机的dns,这些都可以指定进行更改,--graph=指定文件目录,--dns=xxxx方式进行指定!

    [root@localhost ~]# yum install docker -y

  开机自启动docker服务

    [root@localhost ~]# systemctl enable docker

  配置加速器:添加如下标红部分(如果有阿里云账号)

    [root@localhost ~]# more /usr/lib/systemd/system/docker.service

    

  重新加载配置:

    [root@localhost ~]# systemctl daemon-reload

  启动docker服务:

    [root@localhost ~]# systemctl start docker

  查看docker服务是否开启:出现如下标红表示启动docker成功!

    [root@localhost ~]# systemctl status docker

    

2. 容器的简单操作

    搜索镜像:

     docker search 镜像名

    下载镜像:

      下载nginx镜像:

        [root@localhost ~]# docker pull nginx

    查看本机有哪些镜像:      

      [root@localhost ~]# docker images
      REPOSITORY TAG IMAGE ID CREATED SIZE  <-------------仓库的名字    版本号     镜像的id     镜像的创建时间       镜像的大小
      docker.io/nginx latest 231d40e811cd 5 days ago 126 MB
      docker.io/alpine latest 965ea09ff2eb 5 weeks ago 5.55 MB

    导出镜像:

      把nginx镜像导出到指定目录:例子

        [root@localhost ~]# docker save nginx > /tmp/nginx20191128.tar.gz

    删除镜像:docker rmi 镜像的名字或者id

    导入镜像:把nginx镜像导入例子

      先删除nginx镜像,然后根据之前导出的路径进行导入:        

        [root@localhost ~]# docker rmi nginx
        Untagged: nginx:latest
        Untagged: docker.io/nginx@sha256:50cf965a6e08ec5784009d0fccb380fc479826b6e0e65684d9879170a9df8566
        Deleted: sha256:231d40e811cd970168fb0c4770f2161aa30b9ba6fe8e68527504df69643aa145
        Deleted: sha256:dc8adf8fa0fc82a56c32efac9d0da5f84153888317c88ab55123d9e71777bc62
        Deleted: sha256:77fcff986d3b13762e4777046b9210a109fda20cb261bd3bbe5d7161d4e73c8e
        Deleted: sha256:831c5620387fb9efec59fc82a42b948546c6be601e3ab34a87108ecf852aa15f
        [root@localhost ~]# docker images
        REPOSITORY TAG IMAGE ID CREATED SIZE
        docker.io/alpine latest 965ea09ff2eb 5 weeks ago 5.55 MB

        [root@localhost ~]# docker load < /tmp/nginx20191128.tar.gz
        831c5620387f: Loading layer [==================================================>] 72.48 MB/72.48 MB
        5fb987d2e54d: Loading layer [==================================================>] 57.67 MB/57.67 MB
        4fc1aa8003a3: Loading layer [==================================================>] 3.584 kB/3.584 kB
        Loaded image: docker.io/nginx:latest

        [root@localhost ~]# docker images
        REPOSITORY TAG IMAGE ID CREATED SIZE
        docker.io/nginx latest 231d40e811cd 5 days ago 126 MB
        docker.io/alpine latest 965ea09ff2eb 5 weeks ago 5.55 MB

    启动容器:docker run 镜像名字  执行的命令

      例子:

        [root@localhost docker]# docker run -it alpine sh 

    查看正在运行的容器:

      docker ps

    查看所有容器:docker ps -a

    删除容器:docker rm 容器id

    --name 指定容器的名字:自定义容器名字

      docker run -it --name 自定义容器名 镜像名 

    docker inspect 容器id或者容器名 :查看容器详细信息

      

      进入容器方式(推荐):

      docker exec  -it 容器名或者容器id

   创建容器(推荐):例子

      docker run -it -d --name mynginx04 nginx

   查看容器日志:例子

      docker logs -f mynginx04 

  

docker研究-3 docker简介和基本操作的更多相关文章

  1. docker研究-5 docker网络介绍

    例子:启动(创建)一个容器,自定义容器名字为my_nginxtest02,镜像为nginx,将宿主机(本机)81端口映射到容器的80端口 [root@localhost ~]# docker run ...

  2. docker研究-4 docker镜像制作

    这次实验以centos镜像为基础镜像进行相关docker镜像制作. 1. 下载centos镜像 [root@localhost ~]# docker pull centosUsing default ...

  3. 进击的docker 一 : Docker 简介

    Docker简介 1.什么是docker 1.1.docker 起源 开源项目 诞生2013年初 GO语言开发实现 遵从了Apache2.0协议 项目代码在GitHub维护 1.2.docker目标 ...

  4. 【原创】运维基础之Docker(1)简介、安装、使用

    docker 18.09 官方:https://docs.docker.com/ 一 简介 Docker is a platform for developers and sysadmins to d ...

  5. Docker学习笔记(1)-简介

    1. 简介 Docker使用Google公司推出的Go语言开发实现,基于Linux内核的cgroup, namespace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚 ...

  6. docker 实践一:简介和安装

    docker 的简介 docker 绝对是这几年来的重量级开源软件,它是使用 Go 实现的开源容器项目,分属于虚拟化技术. docker 和 虚拟机 docker 作为一种轻量级的虚拟化方式,在运行应 ...

  7. 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介

    笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...

  8. DOCKER学习_001:Docker简介

    一 Docker简介 1.1 docker由来 Docker的英文翻译是“码头工人”,即搬运工,它搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App.我们的 ...

  9. Docker - Dockerfile - 常见命令简介

    概述 感觉是个 比较重要的东西 有个疑问 我是先讲 docker build 还是 先讲 Dockerfile 穿插讲 docker build 最基本的东西 原理 -t -f docker file ...

随机推荐

  1. CodeForces - 1256C (思维+贪心)

    题意 https://vjudge.net/problem/CodeForces-1256C 有一条宽度为n的河.河的左岸编号为0,右岸编号为n+1.河流上还有m个木制平台,第i个平台的长度为ci(所 ...

  2. python 连接数据库,查询结果写入数据到excel

    使用Python链接数据库查询数据,并将查询结果写入到Excel中,实现方法上主要有两步,第一,查数据,第二,写Excel. 一.导入需要的包 import time import xlwt from ...

  3. 4.Java基础_Java类型转换

    import javax.swing.plaf.synth.SynthMenuBarUI; /* 类型转换 自动类型转换: 把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量 强制类型 ...

  4. 非阻塞式I/O

    套接字的默认状态是阻塞的.这就意味着当发出一个不能立即完成的套接字调用时,其进程将被投入睡眠,等待相应的操作完成.可能阻塞的套接字调用可分为以下4类 (1)输入操作,包括read,readv,recv ...

  5. GET POST 区分

    get传送的数据量较小,不能大于2KB.post传送的数据量较大,一般被默认为不受限制.但理论上,IIS4中最大量为80KB,IIS5中为100KB. get安全性非常低,get设计成传输数据,一般都 ...

  6. zz自动驾驶多传感器感知的探索

    案例教学,把“问题”讲清楚了,赞 Pony.ai 在多传感器感知上积累了很多的经验,尤其是今年年初在卡车上开始了新的尝试.我们有不同的传感器配置,以及不同的场景,对多传感器融合的一些新的挑战,有了更深 ...

  7. 家用环境下部署wifidog认证服务器(java版)

    本文所讲的是基于一个java版wifidog认证服务器的开源项目,在windows环境下搭建wifidog认证服务器配合apfree固件实现用户名密码的认证. 大致步骤如下: 一,准备 1.搭建硬件及 ...

  8. django 使用HttpResponse返回json数据为中文

    之前我用django一般用JsonResponse来返回json数据格式 但是发现返回中文的时候会乱码 from django.http import JsonResponse def test(re ...

  9. python-1-基础认识

    前言 将近2020年,python2即将不再更新,但是我们现在的python3也能非常受欢迎的!回顾一下2/3的区别: 1.python2 源码不标准,混乱,重复代码太多, 2.python3 统一 ...

  10. Kubernetes 弹性伸缩全场景解读(二)- HPA 的原理与演进

    前言 在上一篇文章 Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局中,我们介绍了在 Kubernetes 在处理弹性伸缩时的设计理念以及相关组件的布局,在今天这篇文章中,会为大家 ...