Docker 笔记(1)Docker介绍、安装与配置

Docker 简介

什么是 Docker?

在这里插入图片描述
Docker is the world’s leading software container platform.

官方给 Docker 的定位是一个 应用容器平台

为什么是 Docker?

  • 合作开发的时候,在本机可以跑,别人的电脑跑不起来?
    我们拿 Java Web 应用程序举例,我们一个 Java Web 应用程序涉及很多东西,比如 Jdk、Tomcat、Spring 等等。当这些其中某一项版本不一致的时候,可能就会导致应用程序跑不起来这种情况。Docker 则将程序直接打包成镜像,直接运行在容器中即可。

  • 服务器自己的程序挂了,结果发现是别人程序出了问题把内存吃完了,自己程序因为内存不够就挂了
    这种也是一种比较常见的情况,如果你的程序重要性不是特别高的话,公司基本上不可能让你的程序独享一台服务器的,这时候你的服务器就会跟公司其他人的程序共享一台服务器,所以不可避免地就会受到其他程序的干扰,导致自己的程序出现问题。Docker 就很好解决了环境隔离的问题,别人程序不会影响到自己的程序。

  • 公司要弄一个活动,可能会有大量的流量进来,公司需要再多部署几十台服务器
    在没有 Docker 的情况下,要在几天内部署几十台服务器,这对运维来说是一件非常折磨人的事,而且每台服务器的环境还不一定一样,就会出现各种问题,最后部署地头皮发麻。用 Docker 的话,我只需要将程序打包到镜像,你要多少台服务,我就给力跑多少容器,极大地提高了部署效率。

Docker 和 虚拟机 的区别

在这里插入图片描述
比较上面两张图,我们发现:

  • 虚拟机 携带操作系统,本身很小的应用程序却因为携带了操作系统而变得非常大,很笨重;
  • Docker 不携带操作系统,所以 Docker 的应用就非常的轻巧;
  • 在调用宿主机的CPU、磁盘等等这些资源的时候,两者也是不一样的,拿内存举例:
    虚拟机利用 Hypervisor 虚拟化内存,调用过程是 虚拟内存->虚拟物理内存->真正物理内存
    Docker 利用 Docker Engine 调用宿主的的资源,调用过程是 虚拟内存->真正物理内存

传统虚拟机与 Docker容器 的对比:

传统虚拟机 Docker容器
磁盘占用 几个GB到几十个GB左右 几十MB到几百MB左右
CPU内存占用 虚拟操作系统非常占用CPU和内存 Docker引擎占用极低
启动速度 (从开机到运行项目)几分钟 (从开启容器到运行项目)几秒
安装管理 需要专门的运维技术 安装、管理方便
应用部署 每次部署都费时费力 从第二次部署开始轻松简捷
耦合性 多个应用服务安装到一起,容易互相影响 每个应用服务一个容器,达成隔离
系统依赖 需求相同或相似的内核,目前推荐是Linux

Docker 的核心

在这里插入图片描述

  • 镜像(Image):一个镜像代表一个 应用环境,它是只读文件,如 mysql镜像、tomcat镜像等;
  • 容器: 镜像每次运行就是产生一个容器,容器就是正在运行的镜像,特点就是可读可写;
  • 仓库:用来存放镜像的位置,类似于maven仓库,也是镜像下载和上传的位置;
  • dockerFile:docker生成镜像配置文件,用来书写自定义镜像的一些配置;
  • tar:对镜像打包的文件,日后可以还原成镜像;

Docker 安装

Docker 的安装(centos7.x)

Docker 安装官网教程:https://docs.docker.com/engine/install/centos/

Play With Docker 在线虚拟机:https://labs.play-with-docker.com/


卸载原有 docker:没安装过也建议执行一下,它会自动检测,没什么影响。

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

在这里插入图片描述
安装 docker 依赖:

  • yum-utils 提供一个 yum-config-manager 单元
  • device-mapper-persistent-data 和 lvm2 用于储存设备映射(devicemapper)
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

设置 docker 的 yum源:

sudo yum-config-manager \
	--add-repo \
	https://download.docker.com/linux/centos/docker-ce.repo

也可以安装指定版本的 docker,我们一般用前面的方法安装最新版即可。
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
sudo yum install docker-ce-18.09.5-3.el7 docker-ce-cli-18.09.5-3.el7 containerd.io

启动 docker:

sudo systemctl start docker

查看 docker 运行状态: 看到 Active 为 active(running) 说明 docker 已启动;

sudo systemctl status docker

关闭 docker:

sudo systemctl start docker

测试安装,docker 运行第一个项目!

sudo docker run hello-world

在这里插入图片描述

Docker 配置阿里镜像加速服务

docker 运行流程:
在这里插入图片描述

docker配置阿里云镜像加速
访问阿里云查看 docker 镜像加速服务:https://account.aliyun.com/

阿里云控制台搜索:容器镜像,点击进入;
在这里插入图片描述
点击左侧的镜像加速器,查看自己的加速地址(每个人不一样),按文档操作 即可;
在这里插入图片描述
验证 docker 的镜像加速是否生效:

docker info

显示信息中的 Registry Mirrors 如果为阿里云提供的加速地址,即配置成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章