docker 使用教程

docker部署方案

  

1.引擎介绍                                                                                          

         1.1docker与虚拟机的差别

              容器内的进程是运行在宿主内核,与宿主进程一致,只是容器的用户空间不同,是         由容器镜像提供的,也就是镜像提供了rootfs。docker容器只是一个进程,利用镜像提       供的rootfs提供调用所需的用户空间的库支持,使得进程在受控环境下进行而已。

         1.2 image 镜像

              镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所以内容,         包含代码、运行时、库、环境变量和配置文件。镜像采用分层存储结构,

         1.3 container容器

                   容器是镜像运行的实例。容器在主机内核上以本机方式运行应用。每个容器都在独         立进程中运行,占用内存不超过任何其他可执行文件。

         1.4 docker swarm

                   Swarm是官方指定的集群管理工具,它可以把多个docker主机组成的系统转换成    单一的虚拟docker主机,使容器可以组成跨主机的子网网络。

         1.5 docker compose

                   Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整         开发周期,包括服务构建,启动和停止。

         1.6 docker machine

                   DockerMachine是官方提供的一个管理工具,可以支持远程管理docker容器。

2.安装部署

         2.1环境配置

                   docker目前主要有CE社区版和EE企业版。目前使用CE版本,老版本的docker被  称为docker或docker-engine。如果已经安装,先卸载它们已经相关依赖。

        yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

         docker-ce官方推荐采用设置docker存储库安装,这样有利于以后的升级。

         2.2存储库安装

                   1.安装所需的包。yum-utils提供了yum-config-manager 效用,并        device-mapper-persistent-data和lvm2由需要devicemapper存储驱动程序。

执行命令:

        yum install -y             yum-utils \
             device-mapper-persistent-data \
             lvm2

                   2.设置稳定的存储库,官网安装版本采用官方源,推荐使用国内源阿里源。

                     官方源: https://download.docker.com/linux/centos/docker-ce.repo

                     阿里源: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

执行命令:

        yum-config-manager \
                --add-repo\
                https://download.docker.com/linux/centos/docker-ce.repo

                   3.安装需要版本docker-ce,目前有多个版本,根据你项目的实际需求安装相应的 stable版本。

         本次部署安装17.09.1.ce-1.e17.centos版本。

        yum install docker-ce-<VERSION STRING>       
          yum install docker-ce-17.09.1.ce

         4.设置开机启动

        systemctl enable docker

5.启动docker并测试hello-world镜像

        systemctl start docker

如果出现失败,查看/etc/docker/daemon.json 加入{"storage-driver":"devicemapper"}

        docker run hello-world

       2.3 配置加速器

                   1.dockerpull镜像需要加速器,目前可以使用免费并且不用注册的源。

                            Docker官方中国镜像加速:https://registry.docker-cn.com

                            中科大的镜像加速:https://docker.mirrors.ustc.edu.cn

                   2.centos7加速配置

                systemctl enable docker
         vi /etc/systemd/system/multi-user.target.wants/docker.service

                   3.保存退出,重启加载配置并启动服务

        systemctl daemon-reload
        systemctl restart docker

                   4.centos部署时使用devicemapper存储,不建议采用loopback方式存储去的类型。

         dockerinfo会产生waring提醒。

         centos环境默认采用loop-lvm模式,生产环境推荐direct-lvm。

         如需配置请参考:https://blog.csdn.net/bobpen/article/details/68924208

       2.4 安全性配置

                   1.docker服务端在绑定端口时需要配置TLS安全配置。

        使用 -H tcp://... 需要配置--tlsverify权限或者使用docker-machine进行宿主管理,会自动创建证书配置TLS

       2.5 docker-compose安装

                   1.docker-compose是负责实现对docker容器集群的快速安装部署工具,通过配置      docker-compose.yml文件,定义一组相关联的应用容器为一个项目。compose中有两个 重要概念:①服务:一个应用容器,可以包含若干个相同镜像的容器实例。②项目:由     一组关联的应用容器组成的完整业务单元,通过docker-compose.yml文件定义。

                   2.compose支持python pip安装,也可以直接下载编译好的二进制文件,也可以使   用docker容器中运行。前两种传统安装方式适合本地环境下安装使用;使用docker安         装不破坏系统环境,适合云计算场景。

                   二进制包安装:

        curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
        chmod +x /usr/local/bin/docker-compose

                   本次部署下载1.17.1版本配合docker-ce-17.09.1

                   PIP安装:

        pip install -U docker-compose

3.使用教程

         3.1container容器

                   在构建docker应用,容器是docker结构层次中最底层的。上个层级是服务。最高   层级是stack堆栈,定义了所有服务的交互。

         入门教程:https://www.dubby.cn/detail.html?id=8734

         3.2service 服务

                   在分布式应用中,应用的不同部分被称之为服务。在docker中,服务其实就是在    一个应用中的容器。“一个服务只运行一个镜像,但是,他会编排镜像的运行方式——         使用那个端口,需要多少个副本(replicas,就是多个实例)才能满足需要,等等”。伸       缩一个服务就是改变这一个服务的运行的容器的数量。使用docker-compose.ymlk配置    管理。

         入门教程:https://www.dubby.cn/detail.html?id=8735

         3.3swarm 集群

                  dokcer swarm:集群管理,子命令有init,join,join-token,leave,update

                   dockernode:节点管理,子命令有 demote, inspect,ls, promote, rm, ps, update

                   dockerservice:服务管理,子命令有 create, inspect, ps, ls ,rm , scale, update

                   dockerstack:  编排一组有关联的服务器,统一管理

                  入门教程:https://www.dubby.cn/detail.html?id=8738

       3.4 stack 堆栈

                   stack就是一组有关联的服务的组合,可以编排在一起,一起管理。通过集群部署   多个服务

         入门教程:https://www.dubby.cn/detail.html?id=8739

4.常用命令

         4.1容器生命周期管理

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

                  docker run  在一个新的容器执行一个命令

                  docker start 开一个或者更多已经停止的容器

                  docker stop 停止一个运行的容器

                  docker restart 重新开始一个运行的容器

                  docker kill 杀死一个运行的容器

                  docker rm 删除一个或更多的容器

                  docker pause 暂停一个容器的所有进程

                  docker unpaunse 恢复一个容器的所有进程

        4.2 容器操作运维

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

                   dockerps 列出容器

                   dockerinspect 列出关于容器或镜像的底层信息

                   dockertop 显示一个容器运行的进程

                   dockerattach 附上一个运行的容器

                   dockerevents 得到实时的来自服务的事件

                   dockerlog 获得一个容器的日志

                   dockerwait 阻塞直到一个容器停止,然后打印它的退出代码

                   dockerexport 导出一个容器的文件系统作为一个tar文件

                   dockerport 列出容器映射的端口

        4.3容器rootfs命令

        docker [commit|cp|diff]

                   dockercommit 创建一个新的镜像从一个容器

                   dockercp 从容器复制一个文件或目录到本地目录或标准输出

                   dockerdiff 展示一个容器文件系统的变化

        4.4镜像仓库

        docker [login|pull|push|search]

                   dockerlogin 登入仓库

                   dockerpull 拉取镜像

                   dockerpush 推送镜像

                   dockersearch 搜索镜像

        4.5本地镜像管理

        docker [image|rmi|tag|build|history|save|import|load]

                   dockerimages 列出本地的镜像

                   dockerrmi 删除本地的镜像

                   dockertag 打标签本地的镜像

                   dockerbuild 通过Dockerfile构建本地的镜像

                   dockerhistroy 列出镜像的历史

                   dockersave 保存本地的镜像为一个tar文件

                   dockerimport 通过tar导入镜像

                   dockerload 加载tar镜像

        4.6其他命令

        docker [info|version]

5.资料汇总

         参考资料:

                   1.Docker官方文档:

                            https://docs.docker.com

                  2.Docker17.09官方文档中文版:

                            https://legacy.gitbook.com/book/octowhale/docker-doc-cn/details

                   3.Dubby的docker入门六部曲系列:

                            https://www.dubby.cn/detail.html?id=8733

                   4.Docker问答录:

                   https://blog.lab99.org/post/docker-2016-07-14-faq.html#an-zhuang-pei-zhi-wen-ti-8

                  



猜你喜欢

转载自blog.csdn.net/lp112124/article/details/80027517