1 Star 0 Fork 6.8K

好多码 / docker-training

forked from cyzhang / docker-training 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
说明(第八节).txt 5.45 KB
一键复制 编辑 原始数据 按行查看 历史
********* 本章节是自己做测试新增的,主要是docker在windows上及sts上docker插件的使用 ***********
# 从git仓库内下载示例代码
git clone https://gitee.com/zhmore/docker-training.git
# springboot示例详见文件夹springboot-docker内项目
############################### windows上使用docker ############################
# 环境要求:
# windows7上推荐安装Docker toolbox(里面的docker machine代替之前的boot2docker),带VirtualBox
# 支持Hyper-V(Hypervisor)的windows系统安装Docker for Windows,如windows8、windows10、windows server 2008R2 ...
# 概念:
# - boot2docker: 是基于 Tiny Core Linux 的轻量级Linux发行版,专为 Docker准备,完全运行于内存中,24M大小,启动仅5-6秒
# - VirtualBox: Oracle开发的一款开源虚拟机软件,因为docker运行强依赖linux内核,所以需要用virtualbox新建一个虚拟机(boot2docker)
# 安装:双击安装文件按提示安装即可(需要图形化界面可以勾选Kitematic),过程中提示是否安装设备点击“是”就行。
# 安装完成后点击桌面上的Docker Quickstart Terminal进行初始化。(如果报错:Looks like something went wrong in step 'Looking for vboxmanage.exe',到安装目录内双击start.sh就能够正常初始化,原因不明。)
# 初始化下载boot2docker.iso很慢,可以通过下载工具自行需要到https://github.com/boot2docker/boot2docker/releases下载最新的,并复制到C:\Users\Administrator\.docker\machine\cache目录下(参考:http://blog.csdn.net/rickyit/article/details/72772552)
# 可以用ssh工具连接boot2docker,默认的用户名和密码是: docker/tcuser
# 如果virtualbox与vmware同时运行vmware无法上网则更改vmware以下设置:
Edit > Virtual Network Editor > VMNet0 > Bridged > 选择本地网卡或无线网卡
# 提交/拉取到registry(保证要提交的docker服务器registry容器已运行)
# 设置boot2docker访问registry忽略TLS验证两种办法(docker-machine ssh default进入boot2docker进行操作):
# 方法一(windows重启后会重置清除):
sudo vi /var/lib/boot2docker/profile # EXTRA_ARGS内添加insecure-registry,如下:
sudo /etc/init.d/docker restart # 重启docker服务
EXTRA_ARGS='--insecure-registry 192.168.2.113:5000'
# 方法二(windows重启后不会重置清除,永久性的配置采用这种方式):
/etc/docker/daemon.json # 修改或新增文件daemon.json,并添加以下内容:
{ "insecure-registries":["192.168.2.113:5000"] }
# --insecure-registry 0.0.0.0/0 # 这种方式亦可,直接忽略所有的TLS验证
sudo /etc/init.d/docker restart # 重启docker服务
# 提交到registry(Docker Quickstart Terminal、boot2docker均可执行)
sudo docker tag busybox:latest 192.168.2.113:5000/busybox-win:latest
sudo docker push 192.168.2.113:5000/busybox-win:latest
# springboot集成docker(参考:https://spring.io/guides/gs/spring-boot-docker/),详细步骤如下:
# 设置镜像加速地址,与--insecure-registry的配置一样。建议使用xxx.mirror.aliyuncs.com,常用的如下:
--registry-mirror=https://xxx.mirror.aliyuncs.com
--registry-mirror=https://2h3po24q.mirror.aliyuncs.com
--registry-mirror=https://registry.docker-cn.com
或者/etc/docker/daemon.json内添加:
{ "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"] }
# 在STS内的Run Configurations > Maven Build 新增一个启动项,配置如下:
Main:
Base Directory : ${project_loc:项目名}
Goals:package dockerfile:build
Environment: # 在Docker Quickstart Terminal内执行docker-machine env default,根据env的信息配置如下:
DOCKER_HOST: tcp://192.168.99.100:2376
DOCKER_CERT_PATH: C:\Users\Administrator\.docker\machine\machines\default
# 执行启动项可在控制台看到build的信息,成功后到Docker Quickstart Terminal执行查看build情况
docker images
# 启动容器(带profile)
docker-machine ssh default # 进入boot2docker进行操作
docker run -e "SPRING_PROFILES_ACTIVE=test" -d -p 8080:8080 --name springboot yinghai/springboot-docker:0.0.1-SNAPSHOT # spinrgboot会使用SPRING_PROFILES_ACTIVE的值给spring.profiles.active赋值
# 访问测试:http://192.168.99.100:8080/
# push镜像到registry上
# pom内docker.image.prefix填写registry地址,可使用IP或者域名,使用私有域名时需要在hosts内添加信息,如下:
192.168.5.72 docker.yinghai.com
# 固化hosts信息方法(如果不固化windows重启后hosts会重置清除):
# boot2docker启动时会执行bootlocal.sh脚本,首次启动时hosts初始化会在bootlocal.sh后执行,并覆盖其写的内容,出现自定义host不成功的问题,解决方法是使用docker-machine restart default重启或手工执行下bootlocal.sh脚本
sudo vi /var/lib/boot2docker/bootlocal.sh # 添加以下脚本
sh -c 'echo "192.168.5.72 docker.yinghai.com" >> /etc/hosts'
# 保存并给予执行权限
sudo chmod +x /var/lib/boot2docker/bootlocal.sh
# 在STS内的Run Configurations > Maven Build 新增一个启动项,配置如下:
Main:
Base Directory : ${project_loc:项目名}
Goals:install
Environment:... # 跟上面的build镜像配置一样
# 执行启动项可在控制台看到push的信息,成功后到registry的docker主机上查看是否成功
# 更为细致的操作可以使用docker-maven-plugin插件来实现(spring官网示例使用了dockerfile-maven-plugin)
Docker
1
https://gitee.com/zhmore/docker-training.git
git@gitee.com:zhmore/docker-training.git
zhmore
docker-training
docker-training
master

搜索帮助