文章目录

  • 一、docker简介
  • docker的历史
  • docker的概念
  • docker和虚拟机的区别
  • docker命名空间
  • docker镜像
  • docker状态
  • 二、部署docker
  • 设置仓库和拓展
  • 安转docker引擎
  • 开启镜像加速
  • 网络优化
  • 验证安装
  • 总结


一、docker简介

docker的历史

2010年几个年轻人成立了一个做PAAS平台的公司dotCloud.起初公司发展的不错,不但拿到过一些融资,还获得了美国著名孵化器YCombinator的支持,后来微软谷歌亚马逊这样的大厂商也纷纷加入PAAS平台,竞争十分激烈,dotCloud举步维艰.
2013年可能是公司发展的不是很好,工程师又不想自己的努力付之东流,于是他们决定将他们的核心技术开源.这项技术就是docker.当时docker的功能就是将linux容器中的应用代码打包,可以轻松的在服务器之间进行迁移.
无心插柳柳成荫,docker技术风靡全球,于是dotCloud公司改名为docker Inc,并全面投入到docker的开发之中.
2014.6 Docker发布了第一个版本 Docker1.0
2014.7 获得C轮融资 $4000W
2015.4 获得D轮融资 $9500W
至今已经发布到docker

docker的概念

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 实现一次调试多次适用
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)。

docker和虚拟机的区别

docker 版本与Linux 版本匹配关系 docker和linux的关系_运维

docker命名空间

容器采用了6种命名空间 用来应用之间隔离 只有实现以下6种隔离 才表明两个应用隔离了
mount 文件挂载点
user 进程的用户和用户组
pid 进程编号
uts 主机名和主机域
ipc 信号量 消息队列 共享内存
net 网络协议 设备 协议栈 端口

docker镜像

从本质上来说镜像就是一系列文件,可以包括我们应用程序的文件,也可以包括我们应用的运行环境的文件,既然是文件,那么是以什么样的格式在本地保存的呢?

说到存储格式,就要提到linux的一个存储技术,叫做联合文件系统,是一种分层的文件系统,可以将不同的目录挂到同一个虚拟文件系统下

docker 版本与Linux 版本匹配关系 docker和linux的关系_Docker_02

docker状态

created(已创建)
restarting(重启中)
up/running(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)

二、部署docker

Docker 要求 CentOS 系统的内核版本高于 3.10,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
先查看服务器的内核版本

uname -r

docker 版本与Linux 版本匹配关系 docker和linux的关系_Docker_03

设置仓库和拓展

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

docker 版本与Linux 版本匹配关系 docker和linux的关系_容器_04


docker 版本与Linux 版本匹配关系 docker和linux的关系_Docker_05

安转docker引擎

yum makecache fast
yum install docker-ce docker-ce-cli containerd.io	 		
systemctl start docker   开启服务
systemctl enable docker   开机自启

docker 版本与Linux 版本匹配关系 docker和linux的关系_命名空间_06

开启镜像加速

进入阿里云官网,右上角控制台 进入搜索镜像服务 每个人账号都有专属的加速地址 命令直接输入即可

docker 版本与Linux 版本匹配关系 docker和linux的关系_运维_07

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://********.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker 版本与Linux 版本匹配关系 docker和linux的关系_docker_08

网络优化

vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
systemctl restart network
systemctl restart docker

docker 版本与Linux 版本匹配关系 docker和linux的关系_docker_09


docker推荐配置文件

#registry-mirrors 以上添加
  "graph":"/data/docker",		#数据目录
  "storage-driver":"overlay2",	#存储引擎
  "insecure-registries":["registry.access.redhat.com","quary.io"],	#私有仓库
#registry-mirrors 以下添加
  "bip":"172.184.70.1/24",		#docker网络
  "exec-opts":["native.cgroupdriver-systemd"],	#启动时的额外参数
  "live-restore":true			#当docker容器引擎挂掉的时候,使用docker跑起来的容器还能继续运行

验证安装

docker 版本与Linux 版本匹配关系 docker和linux的关系_命名空间_10

总结

docker是什么

docker是容器技术 不同于虚拟机 可以在任何环境下运行

docker和虚拟机的区别

docker 版本与Linux 版本匹配关系 docker和linux的关系_命名空间_11


容器的状态

created(已创建)

restarting(重启中)

up/running(运行中)

removing(迁移中)

paused(暂停)

exited(停止)

dead(死亡)