linux cpu占用率如何看
252
2022-10-18
【运维脚手架】之docker
一、什么是docker
引用官方说明:Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.
简单讲就是,Docker让基础设施像应用程序般轻松管理,方便快速进行集成、测试和封装,极大的减少交付的延误!
Docker原理
前面该吹的都吹了,这边不讲深奥原理(主要也没翻过源代码,讲不出来),docker其实也是一个虚拟机的变种,类似更高级的程序,用java术语讲,封装、抽象更具体,操作系统层面的文件能共用的都共用了,所以整体容量更小,占用更少资源。
为什么使用 Docker
从商业角度来说,主要是快,天下武功唯快不破,这可以解决(忽略)很多问题!
另外,docker的设计思想是一个容器一个应用,最好是无状态的,这样在削峰填谷的时候可以全自动的伸缩!
完全微服务的理念,所以几乎是标配!当然,超密集应用还有更大生态圈,不是仅仅一个docker能解决的!
应在何时使用 Docker
如果开始考虑上微服务、迭代非常迅速,甚至一日多更,完全建议上docker!大不了最终交付改传统模式即可。
二、怎么安装docker
上文讲解了docker的设计和使用理念,这边补充下docker的使用结构
docker结构再分析
容器是docker运行的最小单位,资源来自于镜像,与镜像的区别在于有差异化文件,如程序jar、配置信息等,是有运行时态的数据沉淀,当容器删除时,内在数据被删除! 镜像来源于仓库,分层存储(复用、减少容量、不深究),最原始的镜像只是个小型化的OS,常见的镜像在这上面增加应用,形成新的镜像,如搭载nginx的web应用镜像 仓库,中央公共仓库来自于官方,因网络质量和数据安全等原因,可在局域网搭建私有化仓库,常见有官方的Registry和Vmware公司的Harbor等产品。 数据卷,前面说了docker的设计理念,希望容器是无状态的,这些有状态的数据文件就通过数据卷挂载到容器中,容器的销毁、克隆不影响也可复用!
docker安装
Docker发行版有CE社区和EE商业两种版本,CE免费支持周期是7个月,建议采用stable稳定版。要求宿主机内核最低应不小于3.10版本,这边采用CentOS7最新版示例。
准备好centos服务器/虚拟机后,这里更新系统和docker的源为阿里云的官方源,并安装docker-ce、设置开机自启、关闭防火墙等一系列操作!
cd /etc/yum.repos.d/ rename .repo .repbak ./* wget -O /etc/yum.repos.d/aliyun-centos7.repo wget -O /etc/yum.repos.d/aliyun-centos-docker-ce.repo yum clean all yum makecache fast yum update -y yum repolist yum install -y yum-utils device-mapper-persistent-data lvm2 yum install -y docker-ce systemctl stop firewalld systemctl disable firewalld systemctl enable docker systemctl start docker
设置阿里云加速源,方便后续的镜像拉取,这里需要提前到阿里云注册,使用专属加速器地址! 注册地址:阿里云容器镜像服务 (aliyun.com)
mkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [" } EOF systemctl daemon-reload systemctl restart docker docker --version
docker-compose安装docker compose主要用来稍大一些应用的组合使用,比如web+mysql组合应用,一个文件搞定所有配置,并方便更新和卸载老应用!
因网络问题,目前的主流都是使用daocloud的加速方案,DaoCloud/docker-mirror: docker hub mirror, Docker镜像加速器 (github.com)
curl -L -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
三、拉个web应用玩玩
这边将做三个不同的场景演示:
场景1:hello world
docker pull nginx:stable docker run -it --rm -d -p 8081:80 --name web -d nginx:stable mkdir -p /usr/local/docker/nginx_docker/html echo "
场景2:dockerFile
# prepare docker pull nginx:stable mkdir -p /usr/local/docker/nginx_docker/html cd /usr/local/docker/nginx_docker/ echo "
场景3:compose
mkdir -p /usr/local/docker/nginx_docker/html echo "
场景4:Dockerfile和compose组合使用
写在最后
好的工具、稳定的开发环境可以大幅提高工作效率,作者将自己日常积累的经验分享出来希望能帮助更多的朋友!
【求评论、求点赞、求收藏】
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~