docker容器基本原理及安装

Docker 官网:https://docs.docker.com/
Docker 的 github 地址:https://github.com/moby/moby
Dockerhub 官网
https://registry.hub.docker.com
 
1、Docker是什么:Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何支持 docker 的机器上运行。容器是完全使用沙箱机制,相互之间不会有任何接口调用。

 

 Docker的思想来自于集装箱,一艘大船上,可以把货物整齐摆放起来,并且各种各样的货物被装在集装箱里,集装箱和集装箱之间不会相互影响,只要这些货物在集装箱里封装好好的,那我就可以用一艘大船把他们都运走。

docker就是集装箱,云计算就好比大货轮

2、docker的优点

  1. 快     :运行时性能快,管理操作(启动,停止,开始,重启等),都是以秒,毫秒为单位的
  2. 敏捷   :像虚拟机一样敏捷,而且会更便宜,在bare metal(裸机)上部署像点个按钮一样简单
  3. 灵活   :将应用和系统“容器化”,不添加额外的操作系统,
  4. 轻量   :在一台服务器上可以部署上千台Containers 容器
  5. 成本   :开源,免费,低成本

          docker-ce:社区版

          docker-ee:商业版

3、docker缺点

     所有容器共用 linux kernel 资源,资源能否实现最大限度利用,所以在安全上也会存在漏洞。
 
4、安装docker
     主机 ip:192.168.8.12/24
     centos7.9
      4Gib/4vCPU
4.1、前期准备工作
    配置主机名:       
          [root@localhost ~]# hostnamectl set-hostname docker-01 && bash
    关闭防火墙:
         
[root@docker-01 ~]# systemctl stop firewalld && systemctl disable firewalld
    关闭iptables:
        [root@docker-01 ~]# systemctl stop iptables && systemctl disable iptables
     如果没有,安装iptables
         [root@docker-01 ~]# yum install iptables-services -y #安装 iptables
      清空防火墙规则
         [root@docker-01 ~]# iptables -F  
      关闭selinux,并重启机器才能生效
       [root@docker-01 ~]# setenforce 0
       [root@docker-01 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
       [root@docker-01 ~]# getenforce
                                    Disabled    :重启后显示为Disabled说明已关闭
 
       配置时间同步
       [root@docker-01 ~]# yum install -y ntp ntpdate
       [root@docker-01 ~]#  ntpdate cn.pool.ntp.org
      编写计划任务,每一小时自动同步一次时间
       [root@docker-01 ~]# crontab -e
              * */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

      重启计划任务

      [root@docker-01 ~]# systemctl restart crond 

 4.2 安装docker准备及安装

       安装基础软件包

     [root@docker-01 ~]# yum install -y make cmake libxml2-devel openssl-devel curl curl-devel unzip libaio-devel  ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack nfs-utils lrzsz gcc gcc-c++

        安装docker依赖包

         [root@docker-01 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

        安装docker-ce

        配置docker-ce阿里云的yum源

        [root@docker-01 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

       列出docker-ce版本:yum list docker-ce --showduplicates | sort -r

        安装docker-ce最新版

         [root@docker-01 ~]# yum install docker-ce -y

        启动docker服务

         [root@docker-01 ~]# systemctl start docker && systemctl enable docker

         [root@docker-01 ~]#  systemctl status docker

          看到running,表示docker正常运行

    查看Docker 版本信息
        [root@docker-01 ~]# docker version
 
4.3、开启包转发功能和修改内核参数
  内核参数修改:br_netfilter模块用于将桥接流量转发至iptables链,br_netfilter内核参数需要开启转发。
         [root@docker-01 ~]# modprobe br_netfilter       
         [root@docker-01 ~]# vim /etc/sysctl.d/docker.conf
           net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
           使参数生效 
          [root@docker-01 ~]# sysctl -p /etc/sysctl.d/docker.conf 
           设置开机自启动加载模块脚本
         [root@docker-01 ~]# vim /etc/rc.sysinit
              #!/bin/bash
              for file in /etc/sysconfig/modules/*.modules ; do
              [ -x $file ] && $file
              done
 
            在/etc/sysconfig/modules下创建文件
            [root@docker-01 ~]# vim /etc/sysconfig/modules/br_netfilter.modules
                 modprobe br_netfilter
             设置权限
             [root@docker-01 ~]# chmod 755 /etc/sysconfig/modules/br_netfilter.modules
              
             重启机器模块也会自动加载
             [root@docker-01 ~]# lsmod |grep br_netfilter
              br_netfilter 22256 0
              bridge 151336 1 br_netfilter
 
4.4、配置docker镜像加速器
         登录阿里云镜像仓库
    https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
    如果没有开通,可开通阿里云的镜像服务,填写自己的地址

 

 

           找到镜像加速器,按如下操作

           [root@docker-01 ~]# vim /etc/docker/daemon.json

            { "registry-mirrors": ["https://4d22tx2x.mirror.aliyuncs.com"] }

         

            让配置生效

             [root@docker-01 ~]# systemctl daemon-reload

             [root@docker-01 ~]# systemctl restart docker

docker到现在已安装完成,下一接聊聊一些基本用法

posted @   jefferyone  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示