一.Docker是什么?

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。它是一个轻量级容器技术。

二.Docker应用场景

  Web 应用的自动化打包和发布。

  自动化测试和持续集成、发布。

  在服务型环境中部署和调整数据库或其他的后台应用。

  从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

三.核心概念

  Docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);

  Docker客户端(Client):连接docker主机进行操作;

  Docker仓库(Registry):用来保存各种打包好的软件镜像;

  Docker镜像(Images):软件打包好的镜像;放在docker仓库中;

  Docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用.

四.为什么要用Docker

  1、简化程序:Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

  2、避免选择恐惧症:如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

  3、节省开支:一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

五.如何使用Docker

  1.docker的安装并启动(这里使用CentOS7安装的)

    (1)查看当前linux的内核版本(Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。)

uname -r

      如下图所示:

      

    (2)如果内核版本过低,可以更新系统(更新软件和系统)

yum -y update

    (3)安装Docker(默认安装路径是/var/lib/docker)

yum install docker

    (4)安装完成后启动Docker进程

systemctl start docker

    (5)查看Docker版本号

docker -v

      如下图所示:

      

    (6)Docker设置开机自启

systemctl enable docker

  2.Docker命令(想了解全部命令的话可以参考其官方文档)

    输入 docker 命令来查看到 Docker 客户端的所有命令选项(通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法)

  .Docker的镜像操作

    (1)查看镜像(查看docker仓库中的mysql)

docker search mysql

    (2)下载镜像(下载mysql)

docker pull mysql

    (3)使用 docker images 来列出本地主机上的镜像。(如下图)

    

    REPOSITORY:表示镜像的仓库源

    TAG:镜像的标签

    IMAGE ID:镜像ID

    CREATED:镜像创建时间

    SIZE:镜像大小

    (4)删除指定id的镜像

docker rmi image-id

  4.Docker容器操作(以下列举额的都是常见的操作)

    软件镜像——运行镜像——产生一个容器(正在运行的软件)

    常见的容器操作:

      (1)运行容器(可以不自定义名字,可能需要某些参数,例如mysql需要MYSQL_ROOT_PASSWORD):(一个镜像可以启动多个容器)

 docker run --name 自定义运行后容器的名字 -d 镜像的名字:镜像的标签 

      (2)查看运行中的容器(搭配参数-a可以看到全部容器):

docker ps

      如下图:

      

      其中CONTAINER ID是容器的ID

        NAMES是容器的名字

    (3)停止运行当前容器

 docker stop CONTAINER ID/NAMES

    (4)删除容器

docker rm CONTAINER ID

    (5)端口映射(在启动的时候添加端口映射:-p是将主机的端口映射到容器内部的端口 -d是后台运行)

docker run --name  -d -p 8081:8080 镜像的名字:镜像的标签 

    (6)查看容器日志

docker logs CONTAINER ID/NAMES

    (7)进入容器

docker exec -it mysql /bin/bash

    (8)docker inspect : 获取容器/镜像的元数据。

    (9)docker system prune:清理未使用的容器数据。

【应用容器引擎】Docker笔记的更多相关文章

  1. 你不得不了解的应用容器引擎---Docker

    最近突然想搭一个redis集群玩玩,因为公司的电脑同时开2个虚拟机就卡的不行,所以我就想到用Docker开启多个redis-server来搭建.然后在网上找着找着发现,使用Docker,哪需要搭建啊, ...

  2. 【开发工具 docker】值得学习的应用容器引擎docker安装

    概述: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何 ...

  3. Java框架Spring Boot & 服务治理框架Dubbo & 应用容器引擎Docker 实现微服务发布

    微服务系统架构实践 开发语言Java 8 框架使用Spring boot 服务治理框架Dubbo 容器部署Docker 持续集成Gitlab CI 持续部署Piplin 注册中心Zookeeper 服 ...

  4. Kubernetes将弃用Docker!与 containerd容器引擎

    时间戳:2022-06-07 20:32:19 星期二 撰写文档参考:(阿良-腾讯课堂)Kubernetes将弃用Docker 参考博客k8s入坑之路(3)containerd容器 container ...

  5. Docker笔记(八):数据管理

    前面(哪个前面我也忘了)有说过,如果我们需要对数据进行持久化保存,不应使其存储在容器中,因为容器中的数据会随着容器的删除而丢失,而因通过将数据存储于宿主机文件系统的形式来持久化.在Docker容器中管 ...

  6. Docker笔记(九):网络管理

    Docker的应用运行在容器中,其相互之间或与外部之间是如何通信的,涉及到哪些知识点,本文对相关内容进行整理.因网络这块牵涉的面较多,因此只从日常使用或理解的角度出发,过于专业的就不深入探讨了. 1. ...

  7. Docker笔记(十一):Dockerfile详解与最佳实践

    Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像.本文介绍Dockerfile的常用指令及相应的最佳实践建议. 1. 理解构建上下文 ...

  8. 史上最全面的Docker容器引擎使用教程

    目录 1.Docker安装 1.1 检查 1.2 安装 1.3 镜像加速 1.4 卸载Docker 2.实战Nginx 3.Docker命令小结 4.DockerFile创建镜像 4.1 Docker ...

  9. Centos7下安装与卸载docker应用容器引擎

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

随机推荐

  1. python学习---50行代码实现图片转字符画1

    转自:https://blog.csdn.net/mm1030533738/article/details/78447714 项目链接: https://www.shiyanlou.com/cours ...

  2. 【转】Diamond -- 分布式配置中心

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  3. 微信小程序底部菜单栏的使用方法

    1.找到项目根目录的配置文件 app.json,在配置文件中加入配置代码.例如: "tabBar": { <!--底部的导航配置属性--> "color&qu ...

  4. Linux高级调试与优化——内存管理

    1.物理地址和虚拟地址 Linux采用页表机制管理内存,32位系统中页大小一般为4KB,物理内存被划分为连续的页,每一个页都有一个唯一的页号. 为了程序的的可移植性,进程往往需要运行在flat mem ...

  5. 对保存的参数checkpoints进行可视化读取 1.pywrap_tensorflow.NewCheckpoint(获得checkpoint的读取器) 2.np.save(对npy文件进行保存) 3.tl.file.load_npy_to_any(对保存的npy文件进行读取)

    1. pywrap_tensorflow.NewCheckpoint(path)获得checkpoint的读取器 参数说明: path表示checkpoint的路径 2.np.save(path, d ...

  6. 鬼知道NOI会不会成为下一个奥数

    认真写作文不可能的,这辈子不可能认真写作文的. (月考,期末考,高考即将到达战场,真香警告) 以下应该成为原稿!!! 真.喜欢写感悟,但我感觉我可能把它写的有点商业化,商业化的文章不可能放的,所以我尽 ...

  7. DeepFaceLab参数详解之Batch-Size的使用和取值!

    Batch-Size简称BS. 这是一个非常常见的参数,所有模型都具备的一个参数. 这其实是深度学习中的一个基础概念.要说理论可以说出一大堆,大家可以先简单的理解为一次处理的图片张数.为了防止吓跑小白 ...

  8. 浏览器端-W3School-JavaScript:Screen 对象

    ylbtech-浏览器端-W3School-JavaScript:Screen 对象 1.返回顶部 1. Screen 对象 Screen 对象 Screen 对象包含有关客户端显示屏幕的信息. 注释 ...

  9. samba安装应用实例-1

    应用实例:先安装samba软件,yum install -y samba1.需求:共享一个目录,任何人都可以访问,不用输密码,只读.(1)首先打开samba配置文件/etc/samba/smb.con ...

  10. jquery 教程网