网站首页
关于我们
主机分类
解决方案
云计算研究
资源下载
云计算教程
留言反馈
联系我们

系统安装

当前位置:主页 > 云计算研究 > 系统安装 >

从 0 开始搭建自动部署环境

发布时间:2017-12-09 11:44

 
前言
 
从Docker改变使用动态库后,DooD不再可行,而Dind依然可行。针对此改变,重新整理并记录自动部署环境配置步骤。
 
此环境是实现微服务自动部署的基础,使用jenkins持续集成工具,并内置了java和maven,并实现了容器内运行Docker命令的功能。
 
软件环境
 
宿主机win10
虚拟机CentOS-7-x86_64-Minimal-1708
Docker 17.09.0-ce
apache-maven-3.5.2
jdk 1.8.0_151
jenkins 2.73.3
 
虚拟机安装配置
 
1. 安装Docker
 
参考官方教程Get Docker CE for CentOS (https://docs.docker.com/engine/installation/linux/docker-ce/centos/#set-up-the-repository)
 
可选项:更换源。官方源下载Docker可能很慢,更换成国内的Docker源,比如阿里云的Docker源https://download.docker.com/linux/centos/docker-ce.repo
 
2. 启动Docker并设置开机自启
 
 
 
3. 更换Docker镜像源
 
从Docker官方源下载镜像可能很慢,更换成阿里云的源即可。阿里云专属加速器地址。教程照搬一下,方便查阅。
 
安装/升级你的Docker客户端
 
推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce
 
如何配置镜像加速器
 
针对Docker客户端版本大于1.10.0的用户
 
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
 
 
 
容器安装配置
 
1. 创建Dockerfile
 
该Dockerfile已实现:
 
安装openjdk1.8、maven、jenkins、git
maven配置阿里云镜像源
jenkins自启
时区调整成中国上海
 
Dockerfile内容如下:
 
 
 
 
2. 编译Dockerfile
 
 
 
3. 启动容器
 
 
 
此时我已经使用jenkins账户登录到容器中,根据Dockerfile,此时jenkins已经自启,且目前正在运行命令tail -F /var/log/jenkins/jenkins.log。
 
按Ctrl+P+Q退出bash。命令Ctrl+P+Q保证退出容器不关闭容器。
访问http://localhost:8080。当然,因为我装的是minimal版的CentOS,没有图形界面,只能在宿主机上通过http://虚拟机ip:8080来访问。可使用命令ip addr查看虚拟机ip地址。
使用docker ps查看CONTAINER ID。
使用docker exec -it container_id /bin/bash进入容器。
首次访问该地址需要使用/var/lib/jenkins/secrets/initialAdminPassword中的初始管理员密码来解锁jenkins。 执行cat /var/lib/jenkins/secrets/initialAdminPassword就可以知道密码了。
按照页面指示继续,jenkins会推荐下载一些插件。我默认都安装了。如果安装失败重试即可。然后就是填入新的管理员账号密码。完成后正式进入jenkins管理页面。
 
5. 测试
 
选择新建,填入项目名称,选择构建一个自由风格的软件项目。 构建——》增加构建步骤——》Execute shell——》填入docker run hello-world——》保存。选择立即构建。如果不报错,气球为蓝色,说明成功。
 
报错解决
 
1. 错误1
 
错误内容
 
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.34/version: dial unix /var/run/docker.sock: connect: permission denied
 
解决方案
 
优先参考官方Manage Docker as a non-root user。
关闭虚拟机的selinux(可能有用)。参考查看 SELinux状态及关闭SELinux。
在虚拟机中修改/var/run/docker.sock的权限。(很危险!!!)
 
 
 
2. 错误2
 
错误内容
 
 
 
解决方案
 
忽略。
 
3. 错误3
 
错误内容
 
 
 
解决方案
 
权限问题。解决办法同错误1。
 
参考内容
 
https://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo
Docker in Docker:https://docs.docker.com/samples/library/docker/#connect-to-it-from-a-second-container
DooD(不再有用,因为新版Docker使用了动态库):http://container-solutions.com/running-docker-in-jenkins-in-docker/
Dockerfile: ADD vs COPY:http://blog.csdn.net/liukuan73/article/details/52936045
Maven镜像更换为阿里云中央仓库(精):http://blog.csdn.net/tengxing007/article/details/72588242
tailf、tail -f、tail -F三者区别:http://www.mamicode.com/info-detail-1464146.html
How to automatically start a service when running a docker container?:https://stackoverflow.com/questions/25135897/how-to-automatically-start-a-service-when-running-a-docker-container

网站地图|百度云Windows 2012 如何安装| Linux安装Chrome方法