啊,感慨下,生活不会怠慢努力的人(尽管我不是嘻嘻),并且仍然过着聪明、健康、有爱的生活。。。。。。。。。。。。。。。
之前也在linux下安装过docker,但是也仍然使用,并且仍然没有记录下安装的过程,为了多年之后能再度发觉自己的足迹,就抽个时间记录下这种过程。
哪些是Docker
Docker最初是dotCloud公司创始人SolomonHykes在美国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于2013年3月以Apache2.0授权合同开源,主要项目代码在GitHub上进行维护。Docker项目后来还加入了Linux基金会linux docker使用,并创立促进开放容器联盟(OCI)。
Docker自开源后遭到广泛的关注和讨论,至今其GitHub项目早已超过4万6千个星标和一万多个fork。甚至因为Docker项目的火热,在2013年末,dotCloud公司决定更名为Docker。Docker最初是在Ubuntu12.04上开发实现的;RedHat则从RHEL6.5开始对Docker进行支持;Google也在其PaaS产品中广泛应用Docker。
Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。因为隔离的进程独立于寄主和其它的隔离的进程,因而俗称其为容器。最初实现是基于LXC,从0.7版本之后开始清除LXC,转而使用自行开发的libcontainer,从1.11开始,则进一步演变为使用runC和containerd。
Docker在容器的基础上linux 电子书,进行了进一步的封装linux学习论坛,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。促使Docker技术比虚拟机技术更为轻便、快捷。
下边的图片比较了Docker和传统虚拟化形式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于寄主的内核,容器内没有自己的内核,但是也没有进行硬件虚拟。因而容器要比传统虚拟机更为轻便。
安装Docker
Docker分为CE和EE两大版本。CE即社区版(免费,支持周期7个月),EE即企业版,指出安全,付费使用,支持周期24个月。
DockerCE分为stable,test,和nightly三个更新频道。每六个月发布一个stable版本(18.09,19.03,19.09...)。
CentOS安装DockerCE
警告:请勿在没有配置DockerYUM源的情况下直接使用yum命令安装Docker.
打算工作
DockerCE支持64位版本CentOS7,但是要求内核版本不高于3.10。CentOS7满足最低内核的要求,但因为内核版本比较低,部份功能(如overlay2储存层驱动)难以使用,而且部份功能可能不太稳定。
可以使用uname-r查看linux的内核
安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum缓存:
sudo yum makecache fast
安装Docker-ce:
sudo yum -y install docker-ce
安装成功后,我们启用并启动服务: sudo systemctl enable docker #在服务器上设置设置开机启动 sudo systemctl start docker #启动docker服务
查看是否启动成功:
dockerinfo或则dockerversion都可以看出docker是否启动成功
-------------------------------------------至此docker的安装算是完成了------------------------------------------
docker安装nginx
1.dockerhub上查询nginx
dockersearchnginx
2.下载最新版的nginx
dockerpullnginx
下载完成后,使用dockerimages查看下载的nginx镜像
3、启动跑个静态网页,测试下nginx容器
#启动一个名为nginx(名子自己按照需求取名字,通常见名知意即可)的容器dockerrun--namenginx-d-p80:80-v/usr/docker/nginx/html:/usr/share/nginx/htmlnginx
#默认容器对这个目录有可读写权限,可以通过指定ro,将权限改为只读(readonly)#dockerrun--namemy-nginx-d-p80:80-v/usr/docker/nginx/html:/usr/share/nginx/html:ro-dnginx
4、部署nginx项目并更改配置文件
通常情况下docker启动时进行配置,只要把配置文件的目录挂载下来就可以,而且nginx却是先加载一个主配置文件nginx.conflinux docker使用,在nginx.conf里再加载conf.d目录下的子配置文件(通常最少一个default.conf文件)。
dockerrun--namenginx-d-p80:80-v/usr/share/nginx/html:/usr/share/nginx/html:ro-v/etc/nginx/conf.d:/etc/nginx/conf.d:ro-v/var/log/nginx:/var/log/nginx-v/etc/nginx/nginx.conf/etc/nginx/nginx.confnginx
#1.第一个“-v”,是项目位置,把项目放在挂载到的目录下即可
#2.第二个“-v”,是挂载的主配置文件"nginx.conf",注意"nginx.conf"文件内有一行#"include/etc/nginx/conf.d/*.conf;",
#这个include指向了子配置文件的路径,此处注意include后所跟的路径一定不能出错
#3.第三个“-v”,把docker内子配置文件的路径也挂载了下来,注意要与“2.”中include指向路径一致
#4.nginx.conf是挂载了一个文件(docker是不推荐这样用的),conf.d挂载的是一个目录
-v寄主主机的目录:容器的目录
打算挂载的nginx.conf:
#Formoreinformationonconfiguration,see:
#*OfficialEnglishDocumentation:
#*OfficialRussianDocumentation:
usernginx;
worker_processesauto;
error_log/var/log/nginx/error.log;
pid/run/nginx.pid;
#Loaddynamicmodules.See/usr/share/nginx/README.dynamic.
include/usr/share/nginx/modules/*.conf;
events{
worker_connections1024;
}