【应用容器引擎】Docker笔记

时间:2021-04-27 17:24:30

一.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

      如下图所示:

      【应用容器引擎】Docker笔记

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

yum -y update

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

yum install docker

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

systemctl start docker

    (5)查看Docker版本号

docker -v

      如下图所示:

      【应用容器引擎】Docker笔记

    (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 来列出本地主机上的镜像。(如下图)

    【应用容器引擎】Docker笔记

    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

      如下图:

      【应用容器引擎】Docker笔记

      其中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:清理未使用的容器数据。