文章目录
Docker学习笔记(一)
1.Docker概述
1.1Docker为什么出现
一款产品:开发—上线 两套环境(应用环境,应用配置)
开发—-运维。问题:我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说,考验就十分大?
环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…)费时费力。
发布一个项目(jar +(Redis MySQL jdk ES)),项目能不能都带上环境安装打包!
之前在服务器配置一个应用的环境Redis MySQL jdk ES Hadoop,配置超麻烦了,不能够跨平台。
Windows开发,最后发布到Linux:
- 传统:开发jar,运维来做!
- 现在:开发打包部署上线,一套流程做完!
java —- apk — 发布(应用商店)—-张三使用apk—-安装即可用!
java —- jar(环境)—- 打包项目带上环境(镜像)—-(Docker仓库:商店)—-下载我们发布的镜像—直接运行即可!
1.2Docker概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker给以上的问题,提出了解决方案!
Docker的思想就来自于集装箱!
隔离:Docker核心思想!打包装箱!每个箱子是互相隔离的。
1.3Doker下载地址
Docker是基于Go语言开发的!开源项目!
官网:https://www.docker.com/
文档地址:https://docs.docker.com/
Doker镜像仓库地址:https://hub.docker.com/
2.Docker能做什么
之前的虚拟机技术
虚拟机技术缺点:
1、资源占用十分多
2、冗余步骤多
3、启动很慢!
容器化技术
容器化技术不是模拟的一个完整的操作系统
比较Docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
- 容器内的应用直接运行在宿主机的内核中,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
- 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。
3.Docker安装
3.1Docker的基本组成
Dokcer工作原理
3.2名词解释
镜像(image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像===>run==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(repository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub(默认是国外的)阿里云.…都有容器服务器(配置镜像加速!)
3.3安装Docker
我使用的是cenOS8
第一步:环境查看
第二步:卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
第三步:需要的安装包
yum install -y yum-utils
第四步:设置镜像仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 推荐使用阿里云的。
第五步:更新yum软件包索引
yum makecache fast
第六步:安装容器相关的。docker-ce(社区版)docker-ee(企业版)
yum install docker-ce docker-ce-cli containerd.io
第七步:启动docker
systemctl start docker
第八步:使用docker version查看是否安装成功
测试运行hello-world
4.阿里云镜像加速
- 登录阿里云,找到容器服务。
- 找到镜像加速地址。
- 配置使用。
四个命令,依次执行即可:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7oz3v4fk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker