当人们说“Docker”时,他们通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker
守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run 、docker ps 来列出正在运行的容器、docker images 来列出镜像,等等。
docker是一种轻量级的虚拟化方式。与传统操作系统技术的特性比较如下表:
特性 | 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
性能 | 接近原生 | 较弱 |
内存代价 | 很小 | 较多 |
硬盘使用 | 一般为MB | 一般为GB |
运行密度 | 单机支持上千个容器 | 一般几十个 |
隔离性 | 安全隔离 | 完全隔离 |
迁移性 | 优秀 | 一般 |
传统的虚拟机方式提供的是相对封闭的隔离。Docker利用Linux系统上的多种防护技术实现了严格的隔
离可靠性,并且可以整合众多安全工具。从 1.3.0版本开始,docker重点改善了容器的安全控制和镜像
的安全机制, 极大提高了使用docker的安全性。
docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业
版),本教程使用社区版(CE)。
一款产品: 开发–上线 两套环境!应用环境,应用配置!开发 — 运维。 问题:我在我的电脑上可以允许!版本更新,导致服务不可用!对于运维来说考验十分大!!! 环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…) !费事费力。发布一个项目( jar + (Redis MySQL JDK ES) ),项目能不能带上环境安装打包!之前在服务器配置一个应用的环境 Redis MySQL JDK ES Hadoop 配置超麻烦
了,而且不能够跨平台。
开发环境Windows,最后发布到Linux!
传统:开发jar,运维来做!
现在:开发打包部署上线,一套流程做完!
应用更快速的交付和部署
传统:帮助文档,安装程序。
Docker:打包镜像发布测试一键运行。
更便捷的升级和扩缩容
使用了 Docker之后,我们部署应用就和搭积木一样
项目打包为一个镜像,扩展服务器A!服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致
docker官网地址:
https://www.docker.com
docker官方文档地址:
https://docs.docker.com/
阿里云开发者平台官网地址:
(可以参考阿里云官网提供的docker安装教程进行安装)
https://developer.aliyun.com/article/110806
当我们安装 Docker 的时候,会涉及两个主要组件:
docker硬件安装最好能够满足一下条件:
序号 | 硬件 | 要求 |
---|---|---|
1 | CPU | 推荐2核以上 |
2 | 内存 | 至少2G |
3 | 硬盘 | 至少50G |
4 | 系统 | docker及K8S集群推荐各位小伙伴使用centos7.8版本 |
cat /etc/centos-release
#下载安装wget yum install -y wget #备份默认的yum mv /etc/yum.repos.d /etc/yum.repos.d.backup #设置新的yum目录 mkdir -p /etc/yum.repos.d #下载阿里yum配置到该目录中,选择对应版本 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #更新epel源为阿里云epel源 mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #重建缓存 yum clean all yum makecache #看一下yum仓库有多少包 yum repolist
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install -y kernel-lt grep initrd16 /boot/grub2/grub.cfg grub2-set-default 0 reboot
uname -r uname -a
lscpu
free free -h
fdisk -l
systemctl stop firewalld systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux setenforce 0
vi /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables = 1 net.ipv4.ip_forward=1 net.ipv4.ip_forward_use_pmtu = 0 #生效命令 sysctl --system
#安装bash-completion yum -y install bash-completion bash-completion-extras #使用bash-completion source /etc/profile.d/bash_completion.sh
yum -y install lrzsz #1.鼠标拖拽上传文件 #2.下载文件 #2.1下载一个文件 sz filename #2.2下载多个文件 sz filename1 filename2 #2.3下载dir目录下所有文件,不包含dir下的文件夹 sz dir/*
# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start 注意:其他注意事项在下面的注释中 # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。 # vim /etc/yum.repos.d/docker-ce.repo # 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1 # # 安装指定版本的Docker-CE: # Step 1: 查找Docker-CE的版本: # yum list docker-ce.x86_64 --showduplicates | sort -r # Loading mirror speeds from cached hostfile # Loaded plugins: branch, fastestmirror, langpacks # docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable # docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable # docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable # Available Packages # Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos) # sudo yum -y install docker-ce-[VERSION] # 注意:在某些版本之后,docker-ce安装出现了其他依赖包,如果安装失败的话请关注错误信息。例如 docker-ce 17.03 之后,需要先安装 docker-ce-selinux。 # yum list docker-ce-selinux- --showduplicates | sort -r # sudo yum -y install docker-ce-selinux-[VERSION] # 通过经典网络、VPC网络内网安装时,用以下命令替换Step 2中的命令 # 经典网络: # sudo yum-config-manager --add-repo http://mirrors.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo # VPC网络: # sudo yum-config-manager --add-repo http://mirrors.could.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
镜像加速器能加快我们对docker镜像的下载速度,安装与否凭各位心情
mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://复制自己的加速器地址.mirror.aliyuncs.com"] } EOF systemctl daemon-reload systemctl restart docker
本章节记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,根据docker官网案例。
docker官网地址:https://docs.docker.com/engine/reference/run/
总的来说,分为一下几种:
#docker环境信息 docker -v docker info docker version #容器生命周期管理 docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause] #容器操作管理 docker [ps|inspect|top|attach|wait|export|port|rename|stat] #容器rootfs命令 docker [commit|cp|diff] #镜像仓库 docker [login|pull|push|search] #本地镜像管理 docker [build|images|rmi|tag|save|import|load] #容器资源管理 docker [volume|network] #系统日志信息 docker [events|history|logs]
从docker命令出发,梳理出如下结构图: