Docker开发环境部署
概述
为了统一开发人员的开发环境,方便开发环境的升级,使用docker镜像的方式维护开发环境;
docker容器仓库使用阿里云的仓库,docker开发环境使用openresty作为web服务器,支持php5.2、php5.5、php7.1.9 3个php版本。
准备工作
docker toolbox工具(Windows环境)
docker toolbox 是一个工具集,它主要包含以下一些内容:
- Docker CLI 客户端,用来运行docker引擎创建镜像和容器
- Docker Machine. 可以让你在windows的命令行中运行docker引擎命令
- Docker Compose. 用来运行docker-compose命令
- Kitematic. 这是Docker的GUI版本
- Docker QuickStart shell. 这是一个已经配置好Docker的命令行环境
- Oracle VM Virtualbox. 虚拟机
下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
下载版本:DockerToolbox-18.03.0-ce.exe
Oracle VM VirtualBox
Win10环境下2.1工具集安装出来的VBox无法兼容,需要到官网下载最新的版本重新安装,下载地址:https://www.virtualbox.org/wiki/Downloads
img1项目代码包
由于img1项目比较大,拉取花费时间较多,需要找管理员或者相关同事拷贝副本。
Git安装
Windows环境下安装的docker toolbox默认是会安装git,可以选择提前安装或者统一安装。
安装步骤
拉取workspace代码库
使用git拉取workspace代码库,代码库中包含了各类项目的sh脚本以及Docker环境部署的sh脚本,主要是为了后续设置vbox的共享目录做铺垫。(仓库代码没有权限需要找管理员开启)
git命令:git clone http://liyh@47.95.170.137/service/workspace.git
安装Docker
Windows
安装Docker Toolbox工具集
根据提示下一步到完成即可,安装完成会生成三个应用图标。(工具集安装会默认安装git)
运行Docker Quickstart Teminal
启动终端,过程中会安装boot2docker,下载较慢,需要耐心等待,出现超时或者连接不上问题,详情查看5.4。
运行完成如下图:
打开Oracle VM VirtualBox,可以看到生成了一个“default”虚拟机
虚拟机信息:
default默认虚拟机 tinycorelinux:
默认 IP: 192.168.99.100
默认账号: docker
默认密码: tcuser
提权root使用如下命令: sudo -i
配置共享目录
将本地的workspace目录挂载到docker系统目录中,用于本地开发时同步更新到docker系统环境中。(本地workspace目录要提前生成,详情看3.1操作)
Oracle VM VirtualBox 中选中default镜像,右键,点击设置,选择“共享文件夹”,双击“固定分配”数据栏,配置本机共享文件目录和虚拟机共享文件目录,保存后需要重启虚拟机。
重启虚拟机
VBox软件使用共享目录需要重载内核,因此重启该虚拟机。
判断共享目录是否挂载成功,重启虚拟机后,用xshell连接虚拟机,根目录下执行ls c/workspace ,查看内容是否是本机E:workspace目录下得内容。
生成docker容器
进入本机workspace/bin目录,执行start.bat脚本。(注意:刚刚配置的虚拟机共享目录名称必须和start.bat脚本中的目录名称一致;脚本第一次运行会去拉取阿里云镜像文件,大约1G左右;可以把需要写到容器里的hosts添加到脚本里,这样不需要每次手动去更改,但是如果后期需要添加,只需要删除容器,然后修改你的脚本再运行就可以了)
执行完成:
参考start.bat脚本:
@echo off
for /f "delims=" %%i in ( ' docker ps -as^| find /i /c "mydocker" ') do set p=%%i
echo %p%
if %p% == 1 (
docker start mydocker
echo "start ok"
) else (
docker run -dt -p 2222:22 -p 80:80 -p 9501:9501 -v /c/workspace/data:/data -v /c/workspace/nginx:/usr/server/openresty/nginx/conf/vhost --add-host exam.51cto.com:127.0.0.1 --add-host bloglocal.51cto.com:127.0.0.1 --add-host openapilocal.edu.51cto.com:127.0.0.1 --add-host edulocal.51cto.com:127.0.0.1 --add-host servicelocal.51cto.com:127.0.0.1 --add-host centerlocal.51cto.com:127.0.0.1 --add-host paylocal.51cto.com:127.0.0.1 --add-host test-server.51cto.dev:192.168.8.98 --add-host test-mysql.51cto.dev:192.168.8.98 --add-host test-inter-db.51cto.dev:192.168.8.98 --name mydocker registry.cn-beijing.aliyuncs.com/51cto/centos:master /usr/local/sbin/run.sh
echo "run ok"
)
echo "ok....."
pause
Linux
安装命令:
yum install docker
apt-get install docke
Mac OS
#官网下载并安装
https://www.docker.com/products/docker-desktop
安装项目
进入本机的e:\workspace\bin目录下,根据人员负责业务范围,决定执行各自的脚本(blog_bbs_down.sh,edu.sh,home_uc.sh),可以编辑脚本去除不需要的项目。
注意:如果出现克隆ssh通道失败,详情查看5.3解决。
学院代码需要composer update(最好使用composer install)
cd /data/www/51cto/edu_center
进入虚拟机docker镜像执行
composer update
另外需要设置阿里云镜像(非root用户)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
设置HOST
Windows
打开C:\windows\system32\drivers\etc\host文件,添加IP域名映射
192.168.99.100 bloglocal.51cto.com
192.168.99.100 imglocal.51cto.com
Linux
1、vi /etc/hosts
添加IP域名映射,
192.168.99.100 bloglocal.51cto.com
192.168.99.100 imglocal.51cto.com
正常情况下,修改第一步就可以了,如果第一步不行,执行第二步;
2、vi /etc/sysconfig/network
设置hostname为你想要的名字;
3、重启服务器。
Mac OS
一、系统偏好设置修改
1、打开系统偏好设置,底部有一个Hosts的快捷入口
2、输入ip和hostname后,回车确定,勾选改host即可
二、终端命令行修改
sudo vi /etc/hosts
1、输入本机密码后,打开hosts文件,键盘输入 i (插入),修改hosts文件后,按 esc 键退出,再按shift+:键,再输入w和q,保存退出;
2、不保存退出,则按q和!键;
安装完成
以上docker开发环境就基本安装完成,访问http://localblog.51cto.com就可以看到本地的博客系统。
升级开发环境
由于在系统更新迭代中,容器运行一段时间以后,新增了业务信息,这时候需要对容器进行升级。
清理容器
因为容器运行一段时间之后会带上一些业务的信息,很容易push到容器里,所以不能直接把本地当前的容器打包到镜像中提交,必须要先清理容器,在新的容器中进行升级操作。
停止原容器
docker stop mydocker
开启新的容器
sh bin/start.sh
升级操作
进入容器,然后进行环境升级操作,安装新增组件或者工具等
ssh root@127.0.0.1 -p 2222
打包镜像
docker commit mydocker registry.cn-beijing.aliyuncs.com/51cto/centos:master
提交镜像
将打包的镜像提交到镜像仓库,以便后续同事直接使用
docker push registry.cn-beijing.aliyuncs.com/51cto/centos:master
如果遇到提示没有登录获取权限不够输入:
sudo docker login --username=nieht@51cto.com registry.cn-beijing.aliyuncs.com
密码需要问运维 (密码修改地址: https://cr.console.aliyun.com/cn-beijing/instances/credentials)
安装问题
Docker Quickstart Terminal无法运行,提示找不到快捷方式
如果你的电脑提前安装了Git,在工具集安装的时候取消勾选”Git for Windows”,并且要将安装完成的Docker Quickstart Terminal属性中目标地址中的git地址更改为你实际安装的路径,否则启动该应用的时候会找不到git报错
Oracle VM VirtualBox 无法运行
Win10安装完成后Oracle VM VirtualBox会出现无法运行的提示,这时候需要到官网下载最新的版本重新安装即可,下载地址:https://www.virtualbox.org/wiki/Downloads
Git克隆代码ssh通道失败
在git拉取代码的过程中如果出现拉取失败,连接失败的提示,需要将ssh通道改为http通道进行克隆代码。
Docker Quickstart Terminal运行过程中git拉取iso文件超时
由于国内访问github的网站速度受限,需要配置两个host地址即可解决
- 获取github的global.ssl.fastly地址访问:http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo 获取cdn和ip域名
获取host配置:199.232.69.194 github.global.ssl.fastly.net - 获取github.com地址访问:https://github.com.ipaddress.com/#ipinfo 获取cdn和ip
获取host配置:140.82.113.4 github.com - 设置host文件配置
140.82.113.4 github.com
199.232.69.194 github.global.ssl.fastly.net
其他
字体
字体北京
Axde
ddddww
- 无序列表1
- 二级无序列表1
- 二级无序列表2
- 三级无序列表1
- 三级无序列表2
- 无序列表2
- 无序列表3
- 无序列表4
- 无序列表5
- 有序列表1
- 二级有序列表1
- 二级有序列表2
- 三级有序列表1
- 三级有序列表2
- 有序列表2
- 有序列表3
- 有序列表4
- 有序列表5
1 | 2 | 3 | 4 |
1测试 | 2测试 | 3测试 | 4测试 |
1
| 2
| 3表格图片 | 5 |
1 | 2 | 3 | 5 |