安装 Docker

WHAT :可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,三个核心概念:镜像、容器、仓库

  • 快速,一致地交付您的应用程序
    • 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期
  • 响应式部署和扩展
    • 基于容器的平台,允许高度可移植的工作负载,可移植性和轻量级的特性,实时扩展或拆除应用程序和服务
  • 在同一硬件上运行更多工作负载
    • 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情
  • 这里推荐我认为讲的很不错的一篇文章 https://blog.csdn.net/deng624796905/article/details/86493330

WHY :docker的一个核心就是容器(沙箱),在开发环境开发的代码,到测试环境需要调整,到预生产环境也需要调整,到生产环境更加需要调整,而我们想要的是一次部署到处运行,这就是为什么使用docker。

原理/源码解析容器是怎么隔离的

推荐书籍:深入剖析kubernetes(书籍),你也可以去下载免费的https://pan.baidu.com/s/1gWAQUVsqs1AdMPvRuaEtNA 提取码:q0ht

环境:centos7.6,2核2G内存(1C2G即可)

如果你需要7.6的镜像和xshell可以去网上下载或者我提供的包https://pan.baidu.com/s/1mkIzua1XQmew240XBbvuFA 提取码:7p6h。当然如果你下载7.6镜像包比较慢,想先上手做一下,可以联系我QQ:909336740开一个免费 的服务器(人数过多,已无)

# 查看机器信息,内核版本必须是3.8以上
~]# uname -a
#out: Linux VM_0_5_centos 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
~]# cat /etc/redhat-release 
#out: CentOS Linux release 7.6.1810 (Core) 
# 关闭防火墙
~]# getenforce
#out: Disabled
~]# systemctl stop firewalld
# 查看内存大小
~]# free -m

uname :可显示电脑及操作系统的相关信息,-a/-all:显示全部信息

cat :用于连接文件并打印内容到页面(打印有两种情况,一种是无执行内容所以就是查看,有执行内容则变成执行里面的内容)

getenforce :查看防火墙信息,Disabled为关闭模式

systemctl :用于管理系统,stop:停止某个服务

free :用于显示内存状态,-m:以MB为单位显示内存使用情况

# 查看网络,并安装必要组件
~]# ping baidu.com
# 注意,你的本地源得是删掉的,一般是没有的
# rm /etc/yum.repos.d/local.repo
~]#curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
~]# yum install epel-release -y
# 安装docker包
~]# yum list docker --show-duplicates
~]# yum install -y yum-utils
~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
~]# yum list docker-ce --show-duplicates
~]# yum install -y docker-ce
#out:...Complete!

ping :执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常

rm :命令用于删除一个文件或者目录。

curl :支持文件的上传和下载,是综合传输工具

yum :提供了查找、安装、删除某一个、一组甚至全部软件包的命令,

  • install :安装
  • -y :安装过程的提示选择全部为"yes"

# 设为开机启动,启动并修改相关配置
~]# systemctl enable docker
~]# systemctl start docker
~]# vi /etc/docker/daemon.json
{
  "graph": "/data/docker",
  "storage-driver": "overlay2",
  "insecure-registries": ["registry.access.redhat.com","quay.io"],
  "registry-mirrors": ["https://q2gr04ke.mirror.aliyuncs.com"],
  "bip": "172.7.5.1/24",
  "exec-opts": ["native.cgroupdriver=systemd"],
  "live-restore": true
}
# 重启docker让配置生效
~]# systemctl reset-failed docker.service
~]# systemctl start docker.service
~]# systemctl restart docker
# 如果失败了,systemctl status docker查看报错信息
~]# docker info

daemon.json 文件内容解析:

  • graph:docker的工作目录,docker会在下面生成一大堆文件
  • storage-driver: 存储驱动
  • insecure-registries:私有仓库
  • registry-mirrors:国内加速源
  • bip:docker容器地址(ip的中间两位和我现在的外网129.204.217.99的后两位有对照关系,方便出问题了快速定位在哪个宿主机,但是我这里没改)
  • live-restrore:容器引擎死掉的事情,起来的docker是否继续活着

systemctl status:查看服务信息

docker info:查看docker信息