Docker概述

Docker是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机。Docker项目目前已经加入Linux基金会,全部开源代码均在https://github.com/docker 上进行相关维护,官网地址为:https://www.docker.com/ ,有相关文档可以参考。现在Docker与OpenStack同为最受欢迎的云计算开源项目。
Docker的容器技术可以在一台主机上轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大地提高了工作效率。

开始部署

安装

1.部署yum源
vim /etc/yum.repos.d/docker.repo[docker-repo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
2.使用yum安装Dockeryum install docker-engine -y
3.安装完成后启动Docker并设置为开机自启动systemctl start docker.service systemctl enable docker.service
4.查看docker版本docker version

Docker镜像操作

1.搜索镜像

docker search lamp


2.下载镜像nickistre/centos-lamp
命令格式:docker pull 仓库名称[:标签]
如果下载镜像时不指定标签,则默认下载仓库中最新版本的镜像

docker pull nickistre/centos-lamp

3.查看镜像信息
命令语法:docker images 仓库名称:[ 标签 ]
docker images 表示查看本地所有镜像。

REPOSITORY    #镜像属于的仓库
TAG                    #镜像的标签信息,标记同一个仓库中的不同镜像
IMAGE ID           #镜像的唯一ID号,唯一标识了该镜像。
CREATED          #镜像的创建时间
SIZE                   # 镜像大小

用户还可以根据镜像的唯一标识ID号,获取镜像详细信息
命令格式:docker inspect 镜像ID号

4.为镜像添加新的标签
命令格式:docker tag 名称:[ 标签 ] 新名称:[ 新标签 ]

5.删除镜像
命令格式:docker rmi 仓库名称:标签
或者 docker rmi 镜像 ID号
当一个镜像有多个标签的时候,docker rmi 命令只是删除该镜像多个标签中的指定标签,不会影响镜像文件,但当该镜像只剩下一个标签时,在使用删除命令就会彻底删除该镜像。

6.存出镜像
当需要把一台机器上的镜像迁移到另一台机器上时,需要将镜像保存成本地文件,这一过程叫做存出镜像,可以使用docker save 命令进行存出操作。
命令格式:docker save -o 存储文件名 存储的镜像
docker save -o lamp nickistre/centos-lamp

7.载入镜像将存出的镜像从A机器拷贝到B机器,需要在B机器上使用该镜像,就可以将该导出文件导入到B机器的镜像库中,这一过程叫载入镜像命令格式: docker load < 存出的文件或者            docker --input 存出的文件docker load <lamp或者 docker --inputlamp
8.上传镜像
在上传镜像之前需要对本地镜像添加新的标签,默认上传到Docker Hub官方仓库,但需要注册使用公共仓库的账号,还可以使用docker login 命令在输入用户名、密码和邮箱来完成注册和登录。
命令格式:docker push 仓库名称:标签

Docker容器操作

容器的创建与启动容器的创建是将镜像加载到容器的过程,Docker的容器十分轻量级,用户可以随时创建或者删除。新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器,这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全停止。停止的容器重新启动并保留原来的修改。在创建完成容器时会返回唯一的ID。1.容器的创建
命令格式:docker create [选项] 镜像 运行的程序
docker create -it nginx:latest  /bin/bash
//-i 让容器的输入保持打开
-t 让Docker分配一个伪终端
docker ps -a       //查看所有容器的运行状态 -a 显示系统最近一次启动的容器2.容器的启动
命令格式:docker start 容器的 ID/名称
docker start 28edb150112c3.一键创建并启动容器
用户可以直接执行docker run,直接创建并启动容器,等同于先执行docker create,再执行docker start。需要注意的是,一旦命令执行结束,容器也会停止。当运用docker run来创建容器时,Docker在后台的标准过程是:检查本地是否存在指定镜像,若不存在,则会从公共仓库下载
利用镜像创建并启动一个容器
分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层
从宿主主机的网桥接口中桥接一个虚拟机接口到容器中
分配一个地址池中的IP地址给容器
执行用户指定的应用程序
执行完毕后容器被终止运行
docker run centos /usr/bin/bash -c ls /
Docker的安装、镜像操作、容器操作及资源控制若是需要让docker容器以守护态形式在后台运行,可以添加 -d 选项来实现
docker run -d centos /usr/bin/bash -c "while true;do echo hello;done"
Docker的安装、镜像操作、容器操作及资源控制4.容器的终止
命令格式:docker stop 容器的ID/名称
docker stop ca73977a96855.容器的进入
需要进入容器进行相应操作时,可以使用docker exec命令进入运行着的容器。
命令格式:docker exec -it 容器ID/名称 /bin/bash-i选项表示让容器的输入保持打开-t选项表示让Docker分配一个伪终端6.容器的导出与导入
用户可以将任何一个docker容器从一台机器迁移到另一台机器,在迁移过程中首先要将已经创建好的容器导出为文件,无论容器是处于运行状态还是关闭状态均可导出,导出之后将文件传输到其他机器上,使用导入命令,实现容器的迁移。
命令格式:docker export 容器ID/名称 > 文件名
docker export f41fa9c70057 > centos7
导出的文件从A机器拷贝到B机器,之后使用docker import命令导入,称为镜像。
命令格式: cat 文件名 | docker import - 生成的镜像:标签
cat centos7tar |docker import - centos7:test7.容器的删除
可以使用docker rm命令将一个已经处于终止状态的容器删除。
命令格式: docker rm 容器 ID/名称
docker rm 23e9bbbd5dfs
如果要删除一个正在运行的容器,可以添加-f选项强制删除,但建议先将容器停止再做删除操作。

Docker资源控制

Cgroup是Control group的简写,是Linux内核提够的一种限制使用物理资源的机制,主要包括CPU、内存、blkio。1.对CPU的控制
限制cpu使用速率
使用 --cpu-quota 选项来限制cpu的使用率,cpu的百分比是以1000为单位
docker run --cpu-quota 20000 容器名   //cpu的使用率限定为20%2.多任务按比例分享CPU
docker run --cpu-shares 1024 容器A
docker run --cpu-shares 1024 容器B
docker run --cpu-shares 1024 容器C    //此时cpu的分配比例为1:1:23.限制cpu内核使用
使用 --cpuset-cpus选项来使某些程序独享cpu内核,以便提高其处理速度,选项0表示第一个内核,依次第二个,第三个。docker run --cpuset-cpus 0,1,2,3 容器名   //使容器绑定1~4内核使用
4.对内存使用的限制
docker容器中通过命令来限制内存使用量,当容器Cgrop使用的内存超过了限制的容量,Linux内核将会尝试回收这些内存,如果依旧无法控制内存使用在限制范围之内,进程将会被杀死。docker run -m 1024m 容器名     //限制使用内存为1G
5.对blkio的限制
如果在一台服务器上进行容器的混合部署,那么会出现同时有几个程序写磁盘数据的情况,这时可以通过--device-write-iops选项来限制写入的iops,相应的还有--device-read-bps选项限制读取的iops。该方法只针对blkio限制的是设备,而不是分区。docker run --device-write-bps /dev/sda1:1mb 容器名   //限制容器的/dev/sda1的写入ipos为1MB

转载于:https://blog.51cto.com/13620950/2158539

Docker架构:安装与基本命令相关推荐

  1. Day15(Js入门、jquery入门、ajax入门、前后端分离开发跨域问题、linux环境准备、jdk_tomcat环境搭建、docker介绍及应用(docker安装、基本命令、安装tomcat))

    js入门 js代码辅助 window–>preferences–>javaScript–>Content Assist .abcdefghijklmnopqrstuvwxyz alt ...

  2. 学习大数据的第47天(HDFS以及Zookeeper)——HDFS的重要架构知识点以及zookeeper的安装和基本命令

    学习大数据的第47天(HDFS以及Zookeeper)--HDFS的重要架构知识点以及zookeeper的安装和基本命令 HDFS的知识点 HDFS文件块的大小 HDFS的写流程 自己的话总结一下: ...

  3. Docker架构、镜像及容器的安装和基本操作

    Docker概念 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机.Docker的宗旨:Build,Ship and Run Any APP,Anywhere,即通过对应用组件 ...

  4. docker安装和基本命令

    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口. ...

  5. Docker的安装 与 环境配置 及 阿里云镜像仓库配置、常用命令等

    目录 一.Docker简介 Docker的应用场景 Docker 的优点 1.简化程序 2.避免选择恐惧症 3.节省开支 Docker的架构 Docker 和虚拟机的区别 下图是虚拟机的体系结构: 下 ...

  6. Docker初学2:Docker的安装

    Docker的安装 Docker的架构图 我们先来介绍一下上面这张Docker架构图 镜像(image): Docker 镜像(Image)就是一个只读的模板.镜像可以用来创建 Docker 容器,一 ...

  7. 万字长文详解Docker架构原理及功能使用!

    作者:乐章 https://www.cnblogs.com/zhangxingeng/p/11236968.html  提示:文中有些内容为大神的博客内容,就不统一标注那里引用,只是再最下面标注参考连 ...

  8. Docker源码分析(一):Docker架构

    1 背景 1.1 Docker简介 Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议.目前,Docker可以在容器内 ...

  9. 项目如何用jetty运行_阿里大牛教你如何用Dubbox+SpringBoot+Docker架构,实现双11项目...

    前言 本篇围绕秒杀抢购应用场景,对当下流行的Dubbox+ Spring Boot+Docker微服务架构解决方案进行讲解.主要内容包括微服务架构介绍.Dubbox 原理及运用.使用Spring Bo ...

最新文章

  1. 使用Win API创建工具栏
  2. cat、tac、more、less、head、tail、cut
  3. 如何在 ASP.Net Core 使用 内存缓存
  4. (JAVA)String类之比较方法(2)
  5. C++ —— 初识C++
  6. RuoYi-Cloud 进阶篇_04( Seata 高可用集群 AT模式 需求实战)
  7. Java记录 -9- 面向对象之封装
  8. django解决使用DateTimeField添加、修改记录时不动态更新时间的问题
  9. Leetcode 169 Majority Element
  10. pip;python包管理工具
  11. SSH框架微服务改进实战
  12. python 递归目录和文件 修改主组_python下递归遍历目录和文件的方法介绍
  13. 《MicoPython入门指南》一书即将出版
  14. CSDN博客下载器v2.0发布(导出PDF)
  15. Win10镜像安装pytorch-gpu版
  16. 小米笔记本备份、SSD分区、U盘Ghost详解及对产品的建议
  17. 完整版本支付宝扫码支付 c#版本
  18. 习惯三 要事第一---自我管理的原则
  19. python装饰器代码的简单记录
  20. Pdf 插入图片 | 指定位置插入图片 不改变原格式 直接操作 pdf

热门文章

  1. 一次“ora-12170 tns 连接超时”的经历
  2. VSS 2005 客户端和服务器端配置总结
  3. Docker Compose 配置文件详解
  4. nodejs笔记-异步编程
  5. Eclipse 代码风格配置
  6. shell编程【分发系统】
  7. XingXingMVC页面跳转处理
  8. 冇内容管理系统分析-[JS]详尽解析window.event对象
  9. 剑指offer——面试题7:重建二叉树
  10. 由浅入深理解java集合(二)——集合 Set