Docker学习轨迹一(docker简介与安装)

这里写自定义目录标题

Docker简介

什么是Docker?

当人们说“Docker”时,他们通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker
守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run 、docker ps 来列出正在运行的容器、docker images 来列出镜像,等等。

  • docker是一个软件,可以运行在window、linux、mac等各种操作系统上。
  • docker 是一个开源的应用容器引擎,基于Go 语言开发并遵从 Apache2.0 协议开源,项目代码托
    管在github上进行维护
  • docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任
    何流行的 Linux 机器上。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

Docker基本组成

  • docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
  • docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似
    maven)
  • docker镜像(Images):软件打包好的镜像;放在docker仓库中;
  • docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

Docker与操作系统比较

docker是一种轻量级的虚拟化方式。与传统操作系统技术的特性比较如下表:

特性 容器 虚拟机
启动速度 秒级 分钟级
性能 接近原生 较弱
内存代价 很小 较多
硬盘使用 一般为MB 一般为GB
运行密度 单机支持上千个容器 一般几十个
隔离性 安全隔离 完全隔离
迁移性 优秀 一般

传统的虚拟机方式提供的是相对封闭的隔离。Docker利用Linux系统上的多种防护技术实现了严格的隔
离可靠性,并且可以整合众多安全工具。从 1.3.0版本开始,docker重点改善了容器的安全控制和镜像
的安全机制, 极大提高了使用docker的安全性。

Docker版本

docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业
版),本教程使用社区版(CE)。

Docker的优点

一款产品: 开发–上线 两套环境!应用环境,应用配置!开发 — 运维。 问题:我在我的电脑上可以允许!版本更新,导致服务不可用!对于运维来说考验十分大!!! 环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop…) !费事费力。发布一个项目( jar + (Redis MySQL JDK ES) ),项目能不能带上环境安装打包!之前在服务器配置一个应用的环境 Redis MySQL JDK ES Hadoop 配置超麻烦
了,而且不能够跨平台。

  • 开发环境Windows,最后发布到Linux!
    传统:开发jar,运维来做!
    现在:开发打包部署上线,一套流程做完!

  • 应用更快速的交付和部署
    传统:帮助文档,安装程序。
    Docker:打包镜像发布测试一键运行。

  • 更便捷的升级和扩缩容
    使用了 Docker之后,我们部署应用就和搭积木一样
    项目打包为一个镜像,扩展服务器A!服务器B

  • 更简单的系统运维
    在容器化之后,我们的开发,测试环境都是高度一致的

  • 更高效的计算资源利用
    Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致

Docker安装

Docker官网

docker官网地址:
https://www.docker.com

docker官方文档地址:
https://docs.docker.com/

阿里云开发者平台官网地址:
(可以参考阿里云官网提供的docker安装教程进行安装)
https://developer.aliyun.com/article/110806

安装的硬件要求

当我们安装 Docker 的时候,会涉及两个主要组件:

  • Docker CLI:客户端
  • Docker daemon:有时也被称为“服务端”或者“引擎”

docker硬件安装最好能够满足一下条件:

序号 硬件 要求
1 CPU 推荐2核以上
2 内存 至少2G
3 硬盘 至少50G
4 系统 docker及K8S集群推荐各位小伙伴使用centos7.8版本

centos虚拟机的系统配置

  • 查看centos系统版本命令:
cat /etc/centos-release
  • 配置阿里云yum源
#下载安装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
  • 查看CPU命令
lscpu
  • 查看内存命令
free
free -h
  • 查看硬盘信息
fdisk -l
  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭selinux
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/*

Docker的安装

# 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命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,根据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命令出发,梳理出如下结构图:
Docker学习轨迹一(docker简介与安装)

上一篇:A Child's History of England.164


下一篇:A Child's History of England.164