随着互联网的发展,容器技术越来越得到大规模应用厂家的重视。Docker作为paas平台的容器,最近几年引起众多技术人士的关注,并且也越来越流行。

一、Docker是什么

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
1)dockerClient客户端
2)Docker Daemon守护进程
3)Docker Image镜像
4)DockerContainer容器


二、Docker的应用场景

所有的好产品、工具都是为解决某些场景而存在的,没有应用场景,这些产品和工具也就失去了存在的价值和意义。Docker可以为下列项目角色解决如下关键痛点

1、从开发人员的角色来说

1) 开发环境的管理混乱是开发人员很头痛的问题,尤其是一些团队共用开发环境,项目又非常多的情况,就会更加混乱不堪

2) 开发环境难以复制或者开发环境的硬件出现故障,重新建立开发环境耗费大量的时间和精力

3) 开发环境的搭建,每次都需要重新安装、配置、运行检测,都是耗费资源,甚至需要有专职人员负责集成和维护环境,有悖devops思想

2、测试人员

1) 生产环境和开发环境很难同步,导致测试人员的工作价值,往往因为环境的不同步很难全面体现,本地开发环境测试通过了,生产环境往往又出现问题

2) 测试条件限制,不可能为每种异构平台都准备测试环境,导致测试不完整,影响软件质量

3、运维人员

1) 服务需要快速部署,方便的扩容缩,版本回退都需要很短时间完成,传统做法,耗费时间和精力巨大,对运维人员往往是灾难。

2) 多服务器环境下,保障应用的一致性可控,传统需要人工检查

3) 不同硬件平台间迁移痛苦万分,各种不兼容

4) 如果不同的应用共用同一个硬件服务器,基础环境的版本问题会互相干扰,都需要专门修改配置处理。如java版本、python版本、时区、语言环境等等


  三、Docker的安装
1、如果选用centos的话,建议使用centos 7. 

centos6.5 下,需要升级内核到3.1,我遇到的坑是,虽然升级成功了,但是启动时,提示 “CPU已经被禁止”,而且按网上说的各种方式都没有填平,苦啊。可能和我的CPU family也有关系。

使用过的方法:  1) 修改虚拟机设置选项  2) 修改vmx 文件  3) 修改虚拟机bios  4) 确认本机(物理机)的cpu虚拟化等等~~~

2、使用centos7 的iso 安装

iso 安装版本为:CentOS-7-x86_64-DVD-1708。  

 3、安装docker

       1) 一开始使用yum命令行安装:

         yum install docker-io    

    -----成功

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm  

    --失败,提示

错误:docker-ce conflicts with 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64
错误:软件包:docker-ce-17.03.0.ce-1.el7.centos.x86_64 (/docker-ce-17.03.0.ce-1.el7.centos.x86_64)
        需要:docker-ce-selinux >= 17.03.0.ce-1.el7.centos
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest

        yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm

        ---失败,提示与docker-io版本不匹配


        2)换个思路,通过yum 安装 repo 库,然后让yum自己根据库找关联和依赖
a、 删除docker旧版本  (如果有才执行)
           yum remove docker docker-common container-selinux docker-selinux docker-engine


b、安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源( 系统自带 可以不执行)

           yum install -y yum-utils

c、添加yum源
          yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

d、更新索引

          yum makecache fast

e. 安装 docker-ce
          yum install docker-ce
       

f、启动 docker
          service  docker start

 
g. 验证是否安装成功
          docker info   

安装完成后,执行service docker  status 可以查看docker的状态:


3)验证docker 可以正常工作【网络需要保障】

我们也可以看看docker的hello-word,执行如下命令 docker run hello-world,由于第一次执行,本地docker 没有这个镜像,所以会先去下载,然后在docker容器中运行。



四、搭建gitlab 和redmine

最后,通过搭建一个gitlab和redmine来结束docker的安装实践。

1)gitlab 源码版本控制 
gitlab的运行环境由三个部分组成:postgresql 数据库;redis缓存服务;gitlab服务

a 、启动  postgresql数据库

docker run  --name  gitlab-postgresql -d --env  'DB_NAME=gitlabhg_production'  --env 'DB_USER=gitlab' --env 'DB_PASS=password'  sameersbn/postgresql:9.4-12

b、启动redis    

docker  run --name gitlab-redis  -d  sameersbn/redis:latest
 

c、启动gitlab

docker run --name  gitlab -d \
> --link  gitlab-postgresql:postgresql --link   gitlab-redis:redisio \
> --publish  10022:22  --publish  10080:80 \
> --env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
> --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
> sameersbn/gitlab:8.4.4

       用下面URL   http://192.168.136.177:10080/ 进行登录,使用 root/5iveL!fe 账号和密码登录后,修改自己的密码,这样就可以使用gitlab了


          2) 搭建项目管理redmine 工具

使用docker 搭建 Redmine服务,需要2步

a、数据库下载运行

docker  run  --name=postgresql-redmine -d \
> --env='DB_NAME=redmine_production' \
> --env='DB_USER=redmine'  --env='DB_PASS=password' \
> sameersbn/postgresql:9.4-12
由于上面已经下载过数据库,所以本次要下载的内容小好多

b、运行redmine

docker run  --name=redmine -d \
> --link=postgresql-redmine:postgresql --publish=10083:80 \
> --env='REDMINE_PORT=10083' \
> sameersbn/redmine:3.2.0-4

      使用url  http://192.168.136.177:10083  可以打开redmine界面, 账号和密码  admin/admin, 界面如下:




Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐