Docker 学习---Docker下载与安装、Docker概念与原理

章节目录

==> 1、Docker学习
==> 2、Docker概述
==> 3、Docker基本组成
==> 4、Docker的安装
==> 5、配置阿里云镜像加速
==> 6、底层原理


Docker 学习

  • Docker概述
  • Docker安装
  • Docker命令
    • 镜像命令
    • 容器命令
    • 操作命令
  • Docker镜像!
  • 容器数据卷!
  • DockerFile
  • Docker网络原理
  • IDEA整合Docker
  • Docker Compose
  • Docker Swarm
  • CI\CD jenkins

Docker概述

(1)Docker为什么会出现?

环境配置是十分麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…)!费时费力。

发布一个项目(jar + (Redis MySQL jdk ES)), 项目能不能都带上环境安装打包!

之前在服务器配置一个应用的环境Redis MySQL jdk ES Hadoop , 配置超麻烦了,不能够跨平台。

windows, 最后发布到Linux!

传统:开发jar , 运维来做!

现在:开发打包部署上线,一套流程做完!

Docker给以上的问题,提出了解决方案!

java — jar (环境) —打包项目带上环境(镜像)—(Docker仓库:商店)—下载我们发布的镜像—直接运行即可!

JRE—多个应用(端口冲突)—原来都是交叉的!

隔离:Docker核心思想!打包装箱!每个箱子是相互隔离的。

Docker隔离机制,可以将服务器运行到极致。

(2)Docker有什么用?

之前的虚拟机技术

请添加图片描述

虚拟机技术缺点:1.资源占用多

  1. 冗余步骤多
  2. 启动很慢!

容器化技术

请添加图片描述

比较Docker和虚拟机技术的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
  • 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
  • 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响。

DevOps(开发、运维)

应用更快速的交付和部署

更便携的升级和扩缩容

更简单的系统运维

更高效的计算资源利用


Docker基本组成

请添加图片描述

镜像(image):

docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run ==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行和项目运行是在容器中的)

容器(container):

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。

启动,停止,删除,基本命令!

目前就可以把这个容器理解为就是一个简易的Linux系统

仓库(repository):

仓库就是存放镜像的地方!

仓库分为公有仓库和私有仓库!

Docker Hub (默认是国外的)

阿里云…都有容器服务器(配置镜像加速!)


安装Docker

环境准备

  1. centOS 7
  2. 我们使用Xshell连接远程服务器进行操作!
# 查看系统内核是否为3.10以上的
[root@iZbp187hy4vqhxzem2izpmZ ~]# uname -r
3.10.0-1127.19.1.el7.x86_64
[root@iZbp187hy4vqhxzem2izpmZ ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

安装

帮助文档

# 卸载旧版本
yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine
# 安装yum-utils包
yum install -y yum-utils
# 设置镜像仓库
yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #使用阿里国内源安装docker,速度快
# 更新yum软件包索引
yum makecache fast
# 安装最新的Docker CE版本
yum install docker-ce docker-ce-cli containerd.io
# 如果这是您第一次从最近添加的存储库安装软件包,系统将提示您接受GPG密钥,并显示密钥的指纹。 验证指纹是否正确,如果是,请接受密钥。 指纹应该匹配

060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
# 安装特定版本的 Docker CE

在生产系统上,应该安装特定版本的Docker CE,而不是始终使用最新版本。
yum list docker-ce --showduplicates | sort -r
# 安装指定版本的Docker-CE 
yum install docker-ce-18.03.1.ce-1.el7.centos -y
# 启动Docker
systemctl start docker
# 查看Docker信息
docker version
# 通过运行hello-world 映像验证 Docker Engine 是否已正确安装
docker run hello-world
# 查看上面下载的 hello-world 镜像
docker images

注意:如果需要卸载,请按照以下方式

# 卸载 Docker Engine、CLI 和 Containerd 包
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
# 主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有镜像、容器和卷
rm -rf /var/lib/docker   #docker的默认工作路径

配置阿里云镜像加速

1、登录阿里云,找到 容器镜像服务

img

2、找到镜像加速地址

img

3、配置使用

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://lidtl20v.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

配置完毕!


底层原理

Docker是什么工作的?

Docker是一个Client-Server 结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!

DockerServer接收到Docker-Client的指令,就会执行这个命令!
请添加图片描述

Docker为什么比VM快?

  1. Docker有着比虚拟机更少的抽象层。

  2. docker利用的是宿主机的内核,vm需要是Guest Os。
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值