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. 201871010111-刘佳华《面向对象程序设计(java)》第十二周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第十二周学习总结 实验十   集合与GUI初步 实验时间 2019-11-14 第一部分:基础知识总结 第九章知识总结 1. ...

  2. [C1W2] Neural Networks and Deep Learning - Basics of Neural Network programming

    第二周:神经网络的编程基础(Basics of Neural Network programming) 二分类(Binary Classification) 这周我们将学习神经网络的基础知识,其中需要 ...

  3. MySQL学习笔记8——多表查询

    多表查询 多表查询 *合并结果集 *连接查询 *子查询 合并结果集 *要求被合并的表中,列的类型和列数相同(实际上是查询的结果集列类型和列数相同即可) *UNION,去除重复行 *UNION ALL, ...

  4. LeetCode 676. Implement Magic Dictionary实现一个魔法字典 (C++/Java)

    题目: Implement a magic directory with buildDict, and search methods. For the method buildDict, you'll ...

  5. 洛谷 P4316 绿豆蛙的归宿

    洛谷 P4316 绿豆蛙的归宿 洛谷传送门 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度, ...

  6. 其它 用VB6创建ActiveX.dll

    1.打开VB6 2.选择 ActiveX DLL,点击打开 3.在窗口输入测试代码 Public Function addstr(str As String) As String addstr = & ...

  7. 小米笔试题:无序数组中最小的k个数

    题目描述 链接:https://www.nowcoder.com/questionTerminal/ec2575fb877d41c9a33d9bab2694ba47?source=relative 来 ...

  8. Cntlm 配置上网代理

    下载安装Cntlm之后.仅仅须要改动cntlm.ini文件,提供身份认证必要的信息,然后以服务的方式启动cntlm就能够了. 在cntlm.ini中有例如以下几个重要的配置是可能须要改动的: User ...

  9. java基本类型包装类之间的值比较问题

    废话不多说,先看代码 Integer a = 2;Integer b = 2;if(a==b){ System.out.println("相等");}else{ System.ou ...

  10. VMware exsi虚拟机磁盘扩容

    创建Linux时分配磁盘空间随着使用的增加,使用率逐渐升高,需要对/root进行扩容,此时需要在添加或者扩展一下磁盘. 查看Linux版本信息 [root@localhost ~]# cat /etc ...