好物优选点击查看详情 京东购买

暂无内容

Docker实战教程01—Docker介绍及Docker部署

什么是容器?

容器( container-based )虚拟化方案,充分利用了操作系统本身已有的机制和特性,以实现轻量级的虚拟化(每个容器安装的不是完整的虚拟机)。容器将我们配置完成、可以运行的应用封装到一个轻量化的操作系统中,容器可以快速部署环境重现,减轻了我们的工作量,提高工作效率。

虚拟机和容器

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;虚拟机特点:构成繁重、但隔离好、安全高;如下图:

Docker实战教程01—Docker介绍及Docker部署插图

 

 

  • 容器内的应用进程是直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。容器特点:架构轻、启动快、运行快、构建快;如下图:

 

Docker实战教程01—Docker介绍及Docker部署插图1

 

 

为什么要使用容器?

  • 传统架构业务上线流程繁琐:开发->测试->申请资源->审批->部署->测试等环节;
  • 服务器资源利用率低普遍低,为保证业务间的可用性,单个服务器通常部署单个应用,造成过多浪费;
  • 业务高峰期扩容流程繁琐,需要申请资源部署运行环境等,上线不及时;

Docker介绍

Docker实战教程01—Docker介绍及Docker部署插图2

 

 

Docker 是一个开源的应用容器引擎,基于GO语言开发。Docker 的目标:Build,Ship and Run Any App,Anywhere,通过对应用组件的封装(Packaging),发布(Distribution),运行(runing)等生命周期的管理 , 达到应用组件级别的”一次封装 , 到处运行”。

Docker引用了集装箱的理念,将应用封装,就像是集装的货物可以开箱即用,海洋中鲸鱼的体型庞大像是船行驶在技术的海洋里运送货物到世界各地。

Docker版本区别

1. DockerEE:由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自DockerStore的、经过认证的容器和插件。Docker EE提供三个服务层次:

  • Basic包含用于认证基础设施的Docker平台,Docker公司的支持,经过认证的、来自Docker Store的容器与插件
  • Standard添加高级镜像与容器管理,LDAP/AD用户集成,基于角色的访问控制(Docker Datacenter)
  • Advanced 添加Docker安全扫描,连续漏洞监控

2. Docker CE:是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开 发人员和运维团队构建容器APP。

Docker的安装

直接前往官方文档选择合适的平台安装即可,比如我们这里想要在Centos系统上安装Docker,这前往地址https://docs.docker.com/install/linux/docker-ce/centos/根据提示安装即可。

 

Docker实战教程01—Docker介绍及Docker部署插图3

 

我在这里给大家分享的是docker二进制安装,通常我们在工作中都是用的二进制部署:

1.下载docker二进制包:https://download.docker.com/linux/static/stable/x86_64/,找到Releases选择要下载的Tag,以19.03.9为例:docker-19.03.9.tgz

解压提取:containerd containerd-shim ctr docker dockerd docker-init docker-proxy runc 这些二进制文件,一定要将下载的包传到Linux下解压

Docker实战教程01—Docker介绍及Docker部署插图4

 

2.下载docker-compos二进制包:https://github.com/docker/compose ,找到Releases选择要下载的Tag:以1.28.2为例:

Docker实战教程01—Docker介绍及Docker部署插图5

 

下载的文件就是二进制文件,执行:mv docker-compose-Linux-x86_64 docker-compose 重命名

3.将提取出来的所有二进制文件放到 /usr/local/bin/目录下,本文已将所有操作写成脚本,docker-app.tar.gz包为上述提取的所有二进制文件压缩包。然后执行”sh docker.sh”进行安装,删除docker执行”sh remov.sh”。如果更新docker版本,将新下载版本的二进制文件进行压缩为此包名即可。

Docker实战教程01—Docker介绍及Docker部署插图6

 

4.docker.sh脚本解析:

#/bin/bash tar zxvf docker-app.tar.gz -C /usr/local/bin/ mkdir -p /etc/docker cat <<EOF>/etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "registry-mirrors":[ "https://kfwkfulq.mirror.aliyuncs.com", "https://2lqq34jg.mirror.aliyuncs.com", "https://pee6w651.mirror.aliyuncs.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ] } EOF cat <<EOF>/etc/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin" ExecStart=/usr/local/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target EOF systemctl daemon-reload && systemctl enable docker.service && systemctl start docker.service docker -v docker images docker ps

5.remove.sh脚本解析(删除docker前要删除运行的docker和image):

#/bin/bash systemctl disable docker.service && systemctl stop docker.service && systemctl daemon-reload rm -rf /usr/local/bin/docker* rm -rf /etc/docker rm -rf /etc/systemd/system/docker.service 

 

原文链接:https://www.cnblogs.com/cloudhere/p/14351904.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享