文章目录
- 前言
- 一、Docker是什么?
- 二、为什么使用Docker?
- 三、Docker架构
- 3.1、Docker 基本概念
- 四、Docker下载(Linux系统)
- 五、Docker镜像加速器配置
- 六、Docker镜像
- 1.1 从仓库获取镜像
前言
实习之容器引擎—Docker的学习
(解决分布式微服务框架的落地)
解决
问题1:
某IT部门要上线一个项目。常规操作,直接去线上服务器,拷贝一个tomcat,然后改端口号,然后部署应用到webapps文件夹
下,重启就好。
一
个服务器上可能会部署多个应用服务。如果某个应用出现问题,CPU100%,可能这个服务器上的其他应用也会出现问题。
对于一个大型应用拆分为几十个微服务,分别交由不同的团队开发,不同团队之间水平参差不齐。如果还采用这种部署方式,你
的应用可能会因为另一个团队的应用发生意外。因部署在了同一台服务器上,导致全部出现问题。
问题2:
开发和线上代码(同一套代码)问题。开发阶段部署一套软件环境,测试人员在开发中测试没有问题,运维进行部署。但是正式
部署到服务器时,发生了问题(启动参数、环境问题、漏配了参数)等意外。
问题3:
随着微服务技术的兴起,一个大的应用需要拆分成多个微服务。多个微服务的生成,就会面临庞大系统的部署效率,开发协同效
率问题。然后通过服务的拆分,数据的读写分离、分库分表等方式重新架构,而且这种方式如果要做的彻底,需要花费大量人力物
力。可能需要部署很多个服务器。
问题4:
持续的软件版本发布/测试项目。到线上环境的集成
一、Docker是什么?
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机
器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
二、为什么使用Docker?
1.简化程序
1.1 Docker 可以让开发者打包他们的应用以及依赖包到一个可移植的程序中发布到任何的linux上,并可以直接将成果放在Docker上管理。
2.避免过多选择
2.1 Docker镜像中包含了环境和配置。
3.节省开支
4.持续交付和部署
5.更轻松的迁移
三、Docker架构
1.c/s架构模式,通过远程API管理和创建容器
2.Docker通过Docker镜像创建Docker容器
3.容器->镜像 类似于java中 类->对象
3.1、Docker 基本概念
镜像->n容器 java中一个类就是一个镜像
容器
仓库 存放镜像->maven存放jar包
四、Docker下载(Linux系统)
Docker下载网址 link
先执行命令 : uname -r; 查看版本是否大于3.10
然后移除旧版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine;
安装docker依赖包(Linux安装软件前都需要检查需要的依赖及插件是否存在):
sudo yum install -y yum-utils device-mapper-persistent-data lvm2;
添加阿里镜像源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo;
更新yum缓存:
sudo yum makecache fast;
安装docker (从阿里云中获取)
sudo yum -y install docker-ce;
安装成功后让docker以后台方式启动:
1.
sudo systemctl start docker;
2.
docker version 查看版本
五、Docker镜像加速器配置
进入文件夹 cd/etc/docker/
创建文件daemon.json: vi daemon.json
i:
{
“registry-mirrors”:[“https://gxeo3yz7.mirror.aliyuncs.com”]
}
:wq 保存
配置完毕
六、Docker镜像
1.从仓库获取镜像
2.管理本地主机上的镜像
1.1 从仓库获取镜像
(docker hub:Docker镜像网站)
查找镜像: docker seach 一般情况下直接在网站上寻找
列出镜像: docker images or docker image ls
获取镜像 :docker pull [选项] [Docker Registey 地址[:端口号]/] 镜像名[:标签]
删除镜像:docker rmi 镜像id