Docker 是一个能够把开发应用程序自动部署到容器的开源引擎。Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术,它提供了一个简单、轻量的建模方式,使开发生命周期更高效快速,鼓励了面向服务的架构设计。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。:

Docker 容器本质上是宿主机上的一个进程。Docker 通过 namespace 实现了资源隔离,通过 cgroups 实现了资源的限制,通过写时复制机制(copy-on-write)实现了高效的文件操作。
Docker有五个命名空间:进程、网络、挂载、宿主和共享内存,为了隔离有问题的应用,Docker运用Namespace将进程隔离,为进程或进程组创建已隔离的运行空间,为进程提供不同的命名空间视图。这样,每一个隔离出来的进程组,对外就表现为一个container(容器)。需要注意的是,Docker让用户误以为自己占据了全部资源,但这并不是”虚拟机”。

安装

DockerHub可以注册账号
docker可以在运行在window、mac、linux平台,并都有自己的客户端进行管理。注意要配置国内镜像加速

{"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
}

文档

docker官网文档写的很详细,还有Docker菜鸟教程
play with docker是一个在线学习使用docker的网页,每次可以免费使用4个小时,在里面可以尽情尝试使用docker的命令。

docker术语

1.镜像(image):Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
镜像是一种文件结构。Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。Docker官方网站DockerHub专门存储所有可用的镜像。

2.容器( Container):容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker 利用容器来运行应用。镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

3.仓库:仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。
4. tar文件

docker常用命令

docker version 版本信息
docker info 查看docker安装信息
docker stats 查看cpu 内存占用信息

  • 镜像操作:
    docker search -s 10 java 查找点赞数大于10 的java镜像
    docker pull nginx:latest 下载nginx最新版本的镜像
    docker images 查看当前所有的镜像
    docker rmi 删除本地一个或多个镜像 ,注意如果有基于这个镜像的容器,必须先删除这个容器
    docker history 查看dockerfile构建信息

    docker commit dockerID my_nginx 将一个容器打包成镜像

    可以通过save、load的方式从同事那里拷贝镜像
    docker save -o /usr/share/my_ubuntu_v3.tar runoob/ubuntu:v3 将指定镜像保存成 tar 归档文件, -o指定保存的地方和文件名
    docker load -i my_ubuntu_v3.tar 导入使用 docker save命令导出的镜像,(都会加载到docker指定的地方,不用关心加载到那里)
    也可以使用export、import导出导出,导入和导出镜像


  • 容器操作:
    docker run -d -p 80:80 --name my_nginx -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx dockerID 指定端口和名字,使用宿主机上的配置文件,后台 运行docker。还可以加上--rm,即当容器停止后,自动删除这个容器,运维工作经验推荐。

    docker ps 查看当前正在运行的docker容器, -a列出所有状态的容器,已经停止的容器可以start ,restart,pause ,unpause ,create
    docker stop dockerID 停止一个运行的容器
    docker container prune docker新出的命令,快速删除所有已经退出的容器,

    docker port dockerID 查看容器的端口映射
    docker logs -f dockerID 查看容器内部的标准输出
    docker top dockerID 查看容器内部运行的进程
    docker inspect dockerID 查看容器的底层信息,挺有用的

    docker exec -it dockerID /bin/bash 进入docker容器内部 ,exit退出容器
    docker exec -ti -u root 4650e8d1bcca bash root用户进入


docker基础知识相关推荐

  1. Docker03 Docker基础知识、Docker实战

    1 Docker基础知识 1.1 什么是Docker Docker是一个可以装应用的容器,就像杯子可以装水.书包可以装书一样:docker官网 Docker是Docker公司开发的,并开源到GitHu ...

  2. Docker基础知识:Containers,Namespace,CGroups

    <Linux环境使用命名空间编写一个简单的容器应用程序:namespace,container,cgroups>https://rtoax.blog.csdn.net/article/de ...

  3. Docker基础知识及坑

    目录 1.实用docker工具 2.问题 3.批量删除docker镜像 4.未解决的问题: 5.下载仓库的命名空间为A的镜像,推送到仓库的命名空间为B的地方: 6.centos6.3,内核3.10.0 ...

  4. docker 基础知识分享ppt

    给团队做的docker基础分享ppt, 见下面的附件. https://files.cnblogs.com/files/harrychinese/docker_intro.pptx 转载于:https ...

  5. 20、Docker基础知识-Image Index 和 manifest

    文章目录 1.引子 2.Image Index 和 Manifest 和 config 2.1.Image Index 2.2.Manifest 拉取镜像的流程 拉取镜像文件在哪里 总结 1.引子 D ...

  6. Docker 基础知识 - 使用绑定挂载(bind mounts)管理应用程序数据

    绑定挂载(bind mounts)在 Docker 的早期就已经出现了.与卷相比,绑定挂载的功能有限.当您使用绑定挂载时,主机上的文件或目录将挂载到容器中.文件或目录由其在主机上的完整或相对路径引用. ...

  7. docker基础知识之挂载本地目录

    https://my.oschina.net/piorcn/blog/324202 http://blog.csdn.net/yangzhenping/article/details/43667785 ...

  8. 静茹docker容器的几种方法_1-容器和docker基础知识

    [TOC] ## 一 容器的概念 ### 1.什么是容器: 容器是在隔离的环境里面运行的一个进程,这个隔离的环境有自己的系统目录文件,有自己的ip地址,主机名等. 也可以说:容器是一种轻量级虚拟化的技 ...

  9. Docker训练营Docker基础知识学习笔记2

    一.学习知识点概要 1.对数据集进行判断是否存在缺失值和异常值 2.辨别变量间的关系以及变量与预测值之间的关系 3.数据集的特征 4.如何运用python代码去实现以上内容 二.学习内容 1.读取数据 ...

最新文章

  1. ActiveMQ死信队列使用
  2. 职场减压妙计:主动降职
  3. 使用test BSP application CRM_THTMLB_TEST
  4. 笔记:awesome-chatops摘要
  5. 06 - Object-C ARC机制
  6. python的pyaudio教程入门_『开发技巧』Python音频操作工具PyAudio上手教程
  7. Linux下嗅探又一实例截取
  8. WinServer2012 R2忘记密码的解决方案+远程连接另一种莫名其妙故障
  9. 蓝桥杯 历届试题 剪格子(dfs搜索)
  10. 物联网常用天线,按照使用场景分类,主要有哪些?
  11. 69A.Young Physicist
  12. 采集同花顺android数据,同花顺对比app排行榜数据_SZ300033_乌龟量化
  13. 阿里矢量图标iconfont在微信小程序的使用
  14. 帝国cms怎么发布php,帝国cms如何投稿
  15. android 免root冻结,自冻FreezeYou(超强免ROOT冻结神器)
  16. 适用于Linux的3个顶级开源交叉分发软件包管理系统
  17. repo的入门和使用
  18. 郑州东区鸿蒙学前班,新元鸿蒙教育智能学前班户外大课堂开始啦!
  19. 磁盘未知错误解决过程
  20. Skynet天网监测到的数笔可疑交易背后:又一欺诈项目Forest Tiger Pro被确认

热门文章

  1. linux网卡O I流量查询,查看linux server网络I/0流量的shell脚本
  2. tf keras Dense源码解析
  3. php 运行环境 去mysql,php、MySql运行环境
  4. python定义匿名函数关键字_Python(11):Python函数基础(定义函数、函数参数、匿名函数)...
  5. 六十六、实现Vue项目首页轮播图(vue-awesome-swiper)
  6. 五十八、2020美赛C题的思路以及个人Python的解法
  7. Docker安装mysql并连接
  8. 三十六、Scrapy 中的复写默认管道和Rule扩展
  9. 国外方案 组件化_网页webp解决方案
  10. 切分也重要:基于多粒度语言单元切分的BERT模型