1、Docker的介绍和安装
1. Docker是什么
百度百科的介绍:html
Docker 是一个开源的应用容器引擎,让开发者能够打包他们的应用以及依赖包到一个可移植的容器中,而后发布到任何流行的Linux机器上,也能够实现虚拟化。容器是彻底使用沙箱机制,相互之间不会有任何接口。mysql
简单地说:sql
Docker是一个管理容器的引擎工具。它包含一个服务端和客户端,服务端是一个管理着全部容器和文件系统的服务进程,客户端则是一个服务端的控制器,用来控制docker的服务端进程。至于容器,主要指的是包含了一些特定应用的运行实例,既保证了当前应用的运行环境独立,又能保证容器相互之间的独立。docker
2. Docker的优点
一款产品从开发到上线,从操做系统,到运行环境,再到应用配置。做为开发者,咱们须要关心不少东西,这也是不少互联网公司都不得不面对的问题,特别是各类版本的迭代以后,不一样版本环境的兼容,对运维人员都是考验。Docker之因此发展如此迅速,也是由于它对此给出了一个标准化的解决方案。json
Docker提供了一套虚拟化和文件系统的支持,可让专业人员自由组装须要的运行环境到容器中,并提供容器运行时的隔离。就像一个大型油轮,承载着一个个集装箱,每一个集装箱咱们能够理解为咱们的容器,这个容器中的内容彻底由组装人员自定义。vim
容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽可能小。传统虚拟机方式运行 10 个不一样的应用就要起 10 个虚拟机,而Docker 只须要启动 10 个隔离的应用便可。centos
具体说来,Docker 在以下几个方面具备较大的优点。api
2.一、更快速的交付和部署
对开发和运维(devop)人员来讲,最但愿的就是一次建立或配置,能够在任意地方正常运行。安全
开发者可使用一个标准的镜像来构建一套开发容器,开发完成以后,运维人员能够直接使用这个容器来部署代码。 Docker 能够快速建立容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其余成员更容易理解应用程序是如何建立和工做的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。bash
2.二、更高效的虚拟化
Docker 容器的运行不须要额外的 hypervisor 支持,它是内核级的虚拟化,所以能够实现更高的性能和效率。
2.三、更轻松的迁移和扩展
Docker 容器几乎能够在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、我的电脑、服务器等。 这种兼容性可让用户把一个应用程序从一个平台直接迁移到另一个。
2.四、更简单的管理
使用 Docker,只须要小小的修改,就能够替代以往大量的更新工做。全部的修改都以增量的方式被分发和更新,从而实现自动化而且高效的管理。
3. Docker的架构
Docker使用一个客户端服务器架构。Docker客户端和Docker守护进程交流,Docker守护进程作很是重要的工做,构建,运行和分发你的Docker容器。Docker客户端和守护进程能够运行在一样的系统上,或者是你能够链接一个Docker客户端到一个远程Docker守护进程中。Docker客户端和守护进程经过sockets或经过RESTful API进行沟通交流。
Docker client::Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通讯并将结果返回给用户,Docker client也能够经过socket或者RESTful api访问远程的Docker daemon
Docker daemon: Docker守护进程,运行在宿主机上,用户经过Docker client(Docker命令)与Docker daemon交互
Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
Docker image:镜像是只读的,镜像中包含有须要运行的文件。镜像用来建立container,一个镜像能够运行多个container;镜像能够经过Dockerfile建立,也能够从Docker hub/registry上下载。
Docker hub/registry::共享和管理Docker镜像,用户能够上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也能够搭建本身私有的Docker registry。
4. Docker和Linux的关系
5. docker安装
5.1 执行安装命令:yum -y install docker-io
最初执行的时候报找不到docker的镜像
已加载插件:fastestmirror, refresh-packagekit, security 设置安装进程 Loading mirror speeds from cached hostfile * base: mirrors.cqu.edu.cn * extras: mirrors.njupt.edu.cn * updates: mirrors.njupt.edu.cn No package docker available.
这个时候须要更新epel第三方软件库,运行命令:sudo yum install epel-release
更新完第三方软件库之后继续执行安装命令:yum -y install docker-io,安装成功
5.2 查看安装的docker的版本
命令:docker version
5.3 启动docker
命令:
# systemctl start docker //centos7及之后版本
# service docker start //centos6及以前的版本
5.4 修改系统中docker对应的镜像加速器方便咱们快速下载和上传镜像,以下:
vim /etc/docker/daemon.json #添加后 { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }
注意:新版本的docker没有daemon.json,须要本身建一个
重启docker
卸载docker:
Rpm方式卸载旧docker
# rpm -qa | grep -i docker //查找已经安装docker
# rpm -e [module1][module2][.....] //卸载docker
5.5 从镜像库拉取镜像
命令:docker pull library/hello-world
说明:
docker pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。
5.6 查看本机都有哪些镜像
命令:docker images
5.7 运行镜像文件
命令:
docker run hello-world
说明:
输出这段提示之后,hello world就会中止运行,容器自动终止。有些容器不会自动终止,由于提供的是服务,好比Mysql镜像等。
到此docker已经安装完成!!!!
5.8 docker经常使用命令
拉取docker镜像
docker pull image_name
查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:
docker images
删除镜像
docker rmi hello-world 或者 docker rmi 3535063d9957
查看当前有哪些容器正在运行
docker ps
查看全部容器
docker ps -a
建立docker 容器(能够根据一个镜像建立多个容器)
docker run -tid 镜像ID /bin/bash //非centos7 docker run -tid 镜像ID /usr/sbin/init //centos7版本。使用/usr/sbin/init解决systemctl报错不能使用的问题
删除容器的命令:
docker rm container_name/container_id
启动、中止、重启容器命令:
docker start container_name/container_id docker stop container_name/container_id docker restart container_name/container_id
重命名容器:
docker rename dreamy_albattani mysql_master
后台启动一个容器后,若是想进入到这个容器,可使用attach命令:
docker attach container_name/container_id 或者 docker exec -it container_name/container_id /bin/bash
退出容器
exit
查看当前系统Docker信息
docker info
从Docker hub上下载某个镜像:
docker pull centos:latest
执行docker pull centos会将Centos这个仓库下面的全部镜像下载到本地repository。
参考文章:
1. docker入门介绍:http://www.cnblogs.com/ityouknow/p/8520296.html
2. docker入门介绍:https://www.cnblogs.com/osscoder/p/6553733.html
3. docker安装:https://www.cnblogs.com/maodot/p/7654918.html