DOCKER TOOLBOX windows 平台构建镜像

  • 安装dockertoolbox
  • 设置DOCKER-MACHINE 代理
  • 拉取镜像
  • *gradle build 镜像

安装dockertoolbox

安装包传送门
如果已经安装了virtualbox,可以在安装选项中不在安装virtualbox


设置docker-machine代理

安装完成后,运行Docker Quickstart Terminal界面如下图,运行命令docker-machine env,查看详情
这里写图片描述

运行下面命令登录docker-machine

docker-machine ssh

登录后界面如下
这里写图片描述

docker toobox 使用boot2docker配置的Docker的运行环境,那么配置文件并没有放置在Windows或者MAC系统种,而是附着在了小的Linux虚拟机的内核中。所以我们需要通过上面的命令进入boot2docker linux中进行设置。

sudo vi /var/lib/boot2docker/profile 

代理配置的格式为 protocol://ip:port


EXTRA_ARGS='
--label provider=virtualbox

'
CACERT=/var/lib/boot2docker/ca.pem
DOCKER_HOST='-H tcp://0.0.0.0:2376'
DOCKER_STORAGE=aufs
DOCKER_TLS=auto
SERVERKEY=/var/lib/boot2docker/server-key.pem
SERVERCERT=/var/lib/boot2docker/server.pem

#增加如下代理配置,这里配置的是HTTP 和 HTTPS 实际上是使用的宿主机上的shadowsocket
export HTTP_PROXY=http://192.168.1.219:1081 
export HTTPS_PROXY=http://192.168.1.219:1081

接下来重启docker服务,并退出boot2docker的linux 环境

sudo /etc/init.d/docker restart
exit

拉去镜像

此时代理已经配置好了,开始拉去镜像

docker pull java:8

gradle build 镜像

需要使用https://github.com/bmuschko/gradle-docker-plugin 的gradle插件

apply plugin: 'com.bmuschko.docker-remote-api'
task buildDockerImage(type: DockerBuildImage) {
    dependsOn   copyJar
    //这部分仅仅是为了用于在windows下使用dockertool的时候。如果windows10 下可以通过hyper-V 使用直接的docker,而不通过dockertool,但是hyper-v 会导致vmware 不兼容,所以只好用dockertool

//    if (System.env.DOCKER_HOST) {
//        System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
//        url = "$System.env.DOCKER_HOST".replace("tcp","https")
//        if (System.env.DOCKER_CERT_PATH) {
//            certPath = new File(System.env.DOCKER_CERT_PATH)
//
//        }
//    }
//    else {
//        url = 'unix:///var/run/docker.sock'
//    }
    url='https://192.168.99.100:2376'
    certPath=new File('C:/Users/xxxx/.docker/machine/machines/default')
    inputDir = file('../build/docker/cloud-service-1')
    tag = 'test/cloud-service1'
}

运行gradle buildDockerImage 即可

Logo

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

更多推荐