Docker实践(一)应用场景和安装
本篇主要是描述了在自己的虚拟机环境下搭建docker的过程,以及通过docker搭建了2个应用gitlab 和 redmine作为docker入门的实践活动。
随着互联网的发展,容器技术越来越得到大规模应用厂家的重视。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, 界面如下:
更多推荐
所有评论(0)