学习Mysql过程当中拓展的其余技术栈:Docker入门介绍

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

相关文章
相关标签/搜索