CentOS7 部署Docker&搭建OwnCloud私人云盘服务

Docker简介:

    Docker 是个进程级的轻量化虚拟机,从狭义上来讲就是一个进程,从广义上来讲是一个虚拟容器,或者叫应用容器( Application Container )

Docker 中有三个核心概念:Image、Container、Repository。

  • Image:和 Windows 的那种 ISO 镜像相比,Docker 中的镜像是分层的,可复用的,而非简单的一堆文件迭在一起(类似于一个压缩包的源码和一个 Git 仓库的区别)。

  • Container: 容器的存在离不开镜像的支持,他是镜像运行时的一个载体(类似于实例和类的关系)。依托 Docker 的虚拟化技术,给容器创建了独立的端口、进程、文件等“空间”,Container 就是一个与宿机隔离 “容器”。容器可宿主机之间可以进行 port、volumes、network 等的通信。

  • Repository: Docker 的仓库和 Git 的仓库比较相似,拥有仓库名、tag。在本地构建完镜像之后,即可通过仓库进行镜像的分发。常用的 Docker hub 有 https://hub.docker.com/ 、 https://cr.console.aliyun.com/ 等。

4c926b7faa8d422aa3322b31161ae105.png

Docker相对于VM有以下几个优点:

  • 启动速度快,容器启动本质就是一个开启一个进程而已,因此都是秒启,而 VM 通常要更久

  • 资源利用率高,一台普通 PC 可以跑成百上千个容器,你跑十个 VM 试试。

  • 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源


总之Docker和传统的虚拟机有着非常大的区别,下面就来部署一台Docker研究研究


0:环境检查

    安装之前,我们首先确保自己的 Linux 系统内核版本高于3.10,并且系统是64位,才能体验 Docker 。

    通过 uname -ir 查看是否满足要求。

    >>uname -ir

    clipboard.png


1:替换yum源

    自带的源速度太慢,所以我们需要换一下(这里更换成阿里云的源)

    >>yum install -y wget    #安装wget工具,如果机器已安装可以忽略

    >>wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    >>yum clean all

    >>yum makecache

    #如果安装失败,可以尝试先更新系统yum update -y


2:安装与配置Docker

   安装方式有很多种,本文介绍的是YUM方式

    >>yum install -y docker    #yum 方式安装docker

clipboard.png

    >>vi  /etc/sysconfig/docker

     添加一行:OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'

clipboard.png

    >>systemctl restart docker  #重启服务

笔者在这一步踩了个坑:restart一直报错,无法启动docker,错误提示:

clipboard.png

Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel....d=false)

经过一番百度,最终解决方法:

此处意思是linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,通过配置 --selinux-enabled=false,

    >>vi /etc/sysconfig/docker

clipboard.png

保存,然后可以正常启动

clipboard.png


测试:

     >>docker pull hello-world

clipboard.png

    >>sudo docker run hello-world

clipboard.png

出现“Hello From Docker”表示Docker正常运行

    常用命令:

    1.生命周期管理

    docker [run|start|stop|restart|kill|rm|pause|unpause]

            a.docker start/stop/restart id

            b.docker run 

    2.常用操作运维

    docker [ps|inspect|top|attach|events|logs|wait|export|port]

    3.镜像仓库

    docker [login|pull|push|search]

    4.本地镜像管理

    docker [images|rmi|tag|build|history|save|import]

    5.其他命令

    docker [info|version]


3:在Docker上部署OwnCloud

    我们已经部署完成了Docker,现在来试试部署一个OwnCloud服务

    3.1:拉取OwnCloud镜像

        >>docker pull owncloud

        拉取中///

 clipboard.png

    拉取完成后输入:>>docker images

     可以查看本机上有的镜像

    3.2:部署容器

        >>docker run -d -p 9090:80 owncloud

        #-d        守护容器,就是后台运行,退出命令窗口容器也不会停止

        #-p        宿主机端口和容器端口映射

        #9090:80   宿主机端口:容器公开的端口

clipboard.png


    3.3:测试

    在浏览器中输入 IP:9090

clipboard.png

    可以看到服务已成功运行


停止服务:

    >>docker ps    #查看运行中的dock进程

clipboard.png

    现在可以看到正在运行的镜像只有owncloud这一个

    >>docker stop 19d009f7d305   #19d009f7d305为owncloud的container id

    再次键入 docker ps 可以看到owncloud已经不在运行了

    clipboard.png


---END---


参考:http://www.runoob.com/docker/docker-tutorial.html

微信公众号:itfun


猜你喜欢

转载自blog.51cto.com/mikeyoo/2130995
今日推荐