Docker学习,第一天:简单入门与安装
一、Docker简介
环境配置如此之麻烦,换台机器,重来一次,费事费力。安装的时候,把原始环境一模一样的复制过来。开发人员利用Docker可以消除写作编码时,”在我的机器上可以正常工作“的问题。
Docker包含两方面的技术:镜像技术:打破“代码即应用”的观念,从系统环境开始,从底至上打包应用、包含:运行文档,配置环境,运行环境,运行依赖包,操作系统发行版,内核等。
Docker是基于Go语言实现的云开源项目。build ship and run any app,anywhere
只需要一次配置好环境,换到别的机器上就可以一键部署,大大简化了操作。
能干嘛:解决了运行环境和配置问题软件容器,方便做持续集成病有助于整体发布的容器虚拟化技术
注意:Docker要求Centos6.5以上的版本
三要素:仓库、镜像、容器镜像---类似模板,一个只读的模板,一个镜像可以创建很多个容器
容器---容器是用镜像创建的运行实例。Docker利用容器独立运行一个或一组应用。可以看做一个简易版的Linux环境。
仓库---集中存放镜像的地方。
1、Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置以来打包好行程一个可交付的运行环境,这个打包好的运行环境就似乎image镜像文件。只有通过这个镜像文件才能生成Docker容器。image文件可以看做是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例
2、image文件生成的容器实例,本身也是一个文件,称之为镜像文件
3、一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
4、至于仓储木九十放了一对镜像的地方,我们可以吧镜像发布到仓库中,需要的时候从仓库中拉下来就可以了
二、Docker的安装
1、Centos6.8安装
1》、yum install -y epel-releaseDocker是用epel发布,RHEL系的OS首先要确保已经持有EPEL仓库,否则先检查OS版本,然后安装相应的EPEL包
2》、yum install -y docker-io
3》、安装配置文件:/etc/sysconfig/dockerother_args=DOCKER_CERT_PATH=/etc/dockerDOCKER_NOWARN_KERNEL_VERSION=1
4》、启动Docker后台服务:service docker start
5》、Docker version验证
2、Centos7安装
官网文档: https://docs.docker.com/install/linux/docker-ce/centos/1》、yum install -y yum-utils \device-mapper-persistent-data \lvm2
2》、yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
3》、可选:yum-config-manager --enable docker-ce-nightlyyum-config-manager --enable docker-ce-test4》、yum install docker-ce docker-ce-cli containerd.io5》、启动 systemctl start docker
6》、测试 docker run hello-world
3、卸载Docker
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \
4、docker开机启动
systemctl enable docker ##开启开机自启
systemctl disable docker ##关闭开机自启
5、docker容器自启动
我们设置了docker自启动后,docker可以管理各种容器了,对于容器我们也可以设置重启的策略。
在容器退出或断电开机后,docker可以通过在容器创建时的–restart参数来指定重启策略;
no 不自动重启容器. (默认值)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop的不算
# 设置启动策略
docker run --restart always --name mynginx -d nginx
docker update 84c --restart always
如果容器已经被创建,我们想要修改容器的重启策略
docker update --restart no mynginx或docker container update --restart=always 3e64cad716c0
注意:
容器只有在成功启动后restart policy才能生效。这里的"成功启动"是指容器处于up至少10秒且已经处于docker监管。这是避免没有成功启动的容器陷入restart的死循环。
如果手动stop一个容器,容器设置的restart policy将会被忽略,除非Docker守护进程重启或者容器手动重启;这是避免了如果重启策略设置了always,如果不忽略policy那么容器无法手动停止。