day0--docker容器介绍(1)

关于容器和容器技术的发展简单了解

容器是什么

容器是一个基础工具,泛指任何可以用于容纳其它武平的工具,可以部分或者完全封闭,被用于容纳,储存,运输物品。无头可以被放置在容器中,而容器则可以保护内容物。
瓶、罐、箱、篮、桶、袋、等

it中为什么用容器

我们则是借助容器的这个思维来解决我们it工作中的实际问题。
比如:如下图,我有一个物理服务上面有一个init为1的主进程(大家都知道对linux服务而言pid为1的进程是init的进程),而以这个init为1的进程派生出了python、java、php三个进程器pid号分别是2.3.4 这也就意味着我们这个服务器上其实有三个业务程序,它们在同一台服务器下的同一个操作系统心下问下会遇到进程和进程之间相互影响的问题,因为没有做到隔离。
在这里插入图片描述
这时我们想想办法把三个进程放在三个容器里,让它们做到互不影响互不干扰,
为了完成上面的需求,
办法一:::
最早运用虚拟话的技术已经能够完美的解决了、如图2
在这里插入图片描述
有个物理服务器server和服务器的操作系统Host OS,上面在跑一个虚拟化的中间层Hypervisor,由中间层可以虚拟出上面的两个虚拟机即A 那个一半,和B那一半。。而在虚拟机A上面需要装一个Guest OS操作系统(来宾操作系统)在其上有程序依赖的Bins/Libs (Bins二进制应用,Libs所依赖的链接库,,如python你要装python环境)

办法二::
按照方法一方式,安装一个程序需要先安装操作系统,有点得不偿失
于是便想出了容器技术,如图三
在这里插入图片描述
运用docker engine 链接到server上不需要在安装为程序的系统了。
那么我们应该让应用A和B在哪些层次上隔离呢,看下面的表格,图 4
在这里插入图片描述
在操作系统上是通过名称空间namespace来实现的,下面的6个维度的隔离才说明应用A和B是隔离的
网络设备指的是网卡需要时相互独立的
端口是应用A监听80端口,那么应用B也能监听80端口
应用A调用的内存应该和B是隔离的不相同
应用AB都应该有自己独立的文件系统
AB应该有自己独立的主机名和主机域不一样
。玩容器centos的操作系统要在3.8以上

探索容器的发展史

下面是容器化的探索图
在这里插入图片描述
简史看上图或参考相关问题:https://zhuanlan.zhihu.com/p/358548091
https://www.cnblogs.com/alisystemsoftware/p/13826163.html
容器的哲学理念是:一次构建到处使用

docker容器的介绍

  • Docker基于容器技术的轻量级虚拟化解决方案
  • Docker是容器引擎,把LInux的cgroup、namespace等容器底层技术进行封装抽象为用户提供了创建和管理容器的便捷界面(包括命令行和API)
  • Docker是一个开源项目,诞生于2013年初,基于Google公司推出的Go语言实现。
  • 微软,红帽Linux,IBM,Oracle等主流IT厂商已经在自己的产品里增减对Docker的支持
  • 相比其他早期的容器技术,Docker引入了一整套管理的生态系统,包括分层的镜像模型,荣琼注册库,友好的Rest API
    如下图明显看到docker容器和虚拟机相比的图示。
    在这里插入图片描述
    对比容器和虚拟机的优略
    在这里插入图片描述
    运维最大的作用是能帮老板省下存利润。
    docker的介绍安装方便
    在这里插入图片描述
    你若是有时间也可以去自己去写下引擎。

docker的安装

首先准备一台虚拟机

查看下虚拟机的内核版本完全可以安装docker
在这里插入图片描述
查看下它的版本

[root@hdss7-11 ~]# uname -a
Linux hdss7-11.host.com 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@hdss7-11 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@hdss7-11 ~]# systemctl stop firewalld
[root@hdss7-11 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3771         431        2880          18         458        3024
Swap:             3           0           3
[root@hdss7-11 ~]# mount /dev/cdrom /mnt
[root@hdss7-11 ~]# echo -e '[base]\nname=CentOS7.6\nbaseurl=file:///mnt\nenabled=1\ngpgcheck=0\n#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'>/etc/yum.repos.d/local.repo
[root@hdss7-11 ~]# 
安装一下bash源
[root@hdss7-11 ~]# cd /etc/yum.repos.d/
[root@hdss7-11 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2318  100  2318    0     0   9503      0 --:--:-- --:--:-- --:--:--  9539
安装一下epel源
[root@hdss7-11 yum.repos.d]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2318  100  2318    0     0  14742      0 --:--:-- --:--:-- --:--:-- 14764
或者两个都用yum直接安装
下面查看下docker源
[root@hdss7-11 yum.repos.d]# yum list docker --show-duplicates
已加载插件:fastestmirror, langpacks
Repository base is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
可安装的软件包
docker.x86_64                                      2:1.13.1-102.git7f2769b.el7.centos                                       extras
docker.x86_64                                      2:1.13.1-103.git7f2769b.el7.centos                                       extras
docker.x86_64                                      2:1.13.1-108.git4ef4b30.el7.centos                                       extras
docker.x86_64                                      2:1.13.1-109.gitcccb291.el7.centos                                       extras
docker.x86_64                                      2:1.13.1-161.git64e9980.el7_8                                            extras
docker.x86_64                                      2:1.13.1-162.git64e9980.el7.centos                                       extras
docker.x86_64                                      2:1.13.1-203.git0be3e21.el7.centos                                       extras
docker.x86_64                                      2:1.13.1-204.git0be3e21.el7                                              extras
docker.x86_64                                      2:1.13.1-205.git7d71120.el7.centos                                       extras
docker.x86_64                                      2:1.13.1-206.git7d71120.el7_9                                            extras
docker.x86_64                                      2:1.13.1-208.git7d71120.el7_9                                            extras
[root@hdss7-11 yum.repos.d]# yum -y install epel-release
[root@hdss7-11 yum.repos.d]# yum -y install yum-utils
下面把阿里云上的docker-ce这个文件添加到了我们的yum仓库里面
[root@hdss7-11 yum.repos.d]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
Repository base is listed more than once in the configuration
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
下面是参看目前docker-ce的版本
[root@hdss7-11 yum.repos.d]# yum list docker-ce --show-duplicates
下面下载最新的docker引擎
[root@hdss7-11 yum.repos.d]# yum -y install docker-ce
[root@hdss7-11 yum.repos.d]# systemctl enbale docker
[root@hdss7-11 yum.repos.d]# systemctl enable docker

下面我们做一个docker引擎的配置

[root@hdss7-11 ~]# cd /etc/docker/
[root@hdss7-11 docker]# ll
总用量 4
-rw-------. 1 root root 244 87 22:55 key.json
[root@hdss7-11 docker]# vi daemon.json
[root@hdss7-11 docker]# cat daemon.json
{
  "graph": "/data/docker",            ##docker的工作目录
  "storage-driver": "overlay2",       ##存储驱动我们用overlay2的驱动
  "insecure-registries": ["registry.access.redhat.com","quay.io","hardor.od.com"],   ##镜像仓库地址
  "registry-mirrors": ["https://7lkjwk2y.mirror.aliyuncs.com"],    ##所用到的镜像加速源
  "bip": "172.7.11.1/24",            ##docker网络地址
  "exec-opts": ["native.cgroupdriver=systemd"],   #启动的时候额外参数
  "live-restore": true      ##当docker容器引擎死掉的时候容器还能活着
}

yun仓库的配置和docker-ce的安装脚本

这个脚本可以用于纯净的刚通百度的服务器直接安装至docker-ce

[root@localhost ~]# cat yum_docker_install.sh 
#!/bin/bash
yu (){
mount /dev/cdrom /mnt/
mkdir /etc/yum.repos.d/bak
cd /etc/yum.repos.d && \
mv C* bak/
mv /etc/yum.repos.d/bak/CentOS-Base.repo /etc/yum.repos.d
echo -e '[base]\nname=CentOS7.6\nbaseurl=file:///mnt\nenabled=1\ngpgcheck=0\n#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'>/etc/yum.repos.d/local.repo
echo '/dev/cdrom iso9660 defaults 0 0' >>/etc/fstab
yum clean all
yum makecache
systemctl stop firewalld
systemctl disable firewalld
se_cnf="/etc/selinux/config"
find_key="SELINUX="
setenforce 0 &>/dev/null
sed -ri "/^$find_key/c${find_key}disabled" $se_cnf
result="`getenforce`"
if [ $result = Enforing ];then
  echo "selinux关闭失败!"
  exit 10
else
  echo "selinux关闭成功!"
fi
}

docke (){
yum -y install yum-utils device-mapper-persistent-data lvm2 epel-release
cd /etc/yum.repos.d/
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl start docker.service
systemctl enable docker.service
docker version
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://7lkjwk2y.mirror.aliyuncs.com"]
}
EOF
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
systemctl restart network
systemctl reload docker
systemctl restart docker
systemctl status docker
}
yu
docke

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值